• 1

      Support GCC (optimizations not required)

      Developing support for the GNU Compiler Collection (GCC) generally means creating a new backend (or porting an existing one) for a particular processor architecture or instruction set.

      The backend needs to implement the translation from GCC's intermediate representation to the machine code of the new architecture. This includes:

      • Instruction Selection: Choosing the appropriate target instructions for each operation in the intermediate code.
      • Register Allocation: Mapping the values in the intermediate code to the registers of the target machine.
      • Instruction Scheduling: Determining the order of instructions to maximize performance.
      • Calling Conventions: Implementing the rules for function calls, including passing arguments and returning results.

      You might also consider:

      • Implement ABI: The Application Binary Interface (ABI) needs to be implemented. The ABI defines how data structures are laid out in memory, how function calls are made, and so on. If there are ABI extensions for the new architecture, these should also be implemented.
      • Develop Runtime Libraries: Some aspects of the language, like built-in functions or exception handling, are provided by runtime libraries rather than the compiler itself. These libraries will need to be ported or developed for the new architecture.

            Unassigned Unassigned
            rsene Rafael Sene
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: