User Tools

Site Tools


spo600:2024_winter_project

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
spo600:2024_winter_project [2024/03/05 17:45] chrisspo600:2024_winter_project [2024/04/16 18:10] (current) – external edit 127.0.0.1
Line 17: Line 17:
 These are the specific tasks that we need to undertake: These are the specific tasks that we need to undertake:
  
-^ Name ^ Description ^ Priority +^ Name ^ Description ^ Lead 
-| Command-line Parsing | Parse the GCC command line to pick up AFMV options | Required +| Command-line Parsing | Parse the GCC command line to pick up AFMV options | Muhammad Wajih Rajani 
-| Version List Processing | Process the version list received from the command-line to validate the architectural features | Required +| Version List Processing | Process the version list received from the command-line to validate the architectural features | Cameron Coenjarts 
-| arch= Arguments | The current GCC AArch64 FMV capability accepts versions that are identified by feature flags (such as "sve2") but does not accept "arch=" arguments such as "arch=armv9-a" (those type of arguments are accepted by the x86 FMV implementation). Add this functionality. | Desirable +| arch= Arguments | The current GCC AArch64 FMV capability accepts versions that are identified by feature flags (such as "sve2") but does not accept "arch=" arguments such as "arch=armv9-a" (those type of arguments are accepted by the x86 FMV implementation). Add this functionality. | Linh Nguyen Le 
-| Apply FMV cloning to functions automatically | When the appropriate command-line options are provided, the compiler should automatically clone //all// functions, as if the target_clone attribute was specified. | Required +| Apply FMV cloning to functions automatically | When the appropriate command-line options are provided, the compiler should automatically clone //all// functions, as if the target_clone attribute was specified. | Travis Liu 
-| Produce an error message if AFMV and FMV are used together | Produce an error if the compiler is invoked with AFMV command-line options //and// there are FMV attributes specified in the code. | Desirable +| Produce an error message if AFMV and FMV are used together | Produce an error if the compiler is invoked with AFMV command-line options //and// there are FMV attributes specified in the code. | Phuong Ngan Huynh 
-| Prune Cloned Functions | Remove any AFMV-created clone functions that do not provide any significant benefit or differentiation. | Desirable (Required but could be added later +| Prune Cloned Functions | Remove any AFMV-created clone functions that do not provide any significant benefit or differentiation. | Kristjan Punno 
-| Diagnostic Output | Provide diagnostic output (when activated by -fdump-...-... command-line options). | Desirable +| Diagnostic Output | Provide diagnostic output (when activated by -fdump-...-... command-line options). |Steven David Pillay
-| Git Wrangler | Mangage the repository, including frequent rebasing. | Required +| Git Wrangler | Mangage the repository, including frequent rebasing. | Matthew De Napoli 
-| Update Documentation | Update the existing GCC IFUNC and FMV documentation (all archs) | Desirable |  +| Update Documentation 1| Update the existing GCC IFUNC and FMV documentation (all archs) | |  
-| Create AFMV Documentation | Create documentation for the AFMV feature. | Required +| Update Documentation 2| Update the existing ACLE documentation|Heavendeep Kaur Munjal|  
-| Create Tests | Create a suite of tests for the AFMV capability. (This is in addition to individual tests that the various task owners will prepare). | Desirable (Strongly!) |+| Create AFMV Documentation | Create documentation for the AFMV feature. | Mimi Dang 
 +| Create Tests | Create a suite of tests for the AFMV capability. (This is in addition to individual tests that the various task owners will prepare). |Rachit Chawla|
  
-==== Project Stage 1 ====+===== Project Stage 1 =====
  
-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.+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. Select at least two tasks from the task list (above). For each task, identify:+2. **Select at least two tasks from the task list (above).** For each task, identify:
  
 (a) the specific, relevant sections of the GCC code base (source files and line numbers), or for non-code tasks such as documentation, where you will find the information you need (could be source files and line numbers, or other sources); (a) the specific, relevant sections of the GCC code base (source files and line numbers), or for non-code tasks such as documentation, where you will find the information you need (could be source files and line numbers, or other sources);
  
 (b) a detailed description of the work that needs to be performed to complete the task; (b) a detailed description of the work that needs to be performed to complete the task;
 +1
 <nowiki>(c)</nowiki> tools and techniques that you plan to employ; <nowiki>(c)</nowiki> tools and techniques that you plan to employ;
  
Line 52: Line 53:
 (h) a rough estimate of the amount of work involved in each task (in hours), and how you arrived at that estimate. (h) a rough estimate of the amount of work involved in each task (in hours), and how you arrived at that estimate.
  
-3. Of the tasks from step 2 above, prioritize your interest. Which task would you prefer to own? How confident are you that you will be able to complete the work?+3. **Of the tasks from step 2 above, prioritize your interest.** Which task would you prefer to own? How confident are you that you will be able to complete the work? 
 + 
 +4. **Blog the above information.** 
 + 
 +==== Due Date ==== 
 + 
 +  * March 17 for Stage 1. 
 + 
 +===== Project Stage 2 ===== 
 + 
 +1. **Complete the task from the task table.** In order to avoid blocking on other tasks, perform the initial implementation as a stand-alone task which does not depend on any of the other tasks being performed (to the extent possible). For example, the Command-line Argument Processing would normally feed the Version List processing, which in turn would control the FMV Cloning of functions. In the initial stage, the command-line arguments should be parsed and stored into the appropriate locations. The Version List processing can be written in such a way that it processes hard-coded input value (or reads values from a file or other location to facilitate testing) so that this can be written without blocking (waiting) for the Command-line Argument Processing. Likewise, the initial implementation of the Version List processing can assume that AFMV is enabled for a couple of microarchitectures. In the next stage we will connect up the various tasks components so that they communicate their values effectively. 
 + 
 +2. Be prepared to discuss your task plan during the Friday, March 22 class. 
 + 
 +3. Attend the classes and be prepared to discuss your task as appropriate.
  
-4. Blog the above information.+4. **Blog about the process.**
  
-===== Due Date =====+==== Due Date ====
  
-  * TargetMarch 10 for Stage 1. +  * TentativeApril 5 for Stage 2.
-  * We will discuss the date during the March 8 class.+
  
spo600/2024_winter_project.1709660727.txt.gz · Last modified: 2024/04/16 18:10 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki