Direct Object Code Emission
From LLVM
Contents |
[edit] Project Team
This project is being actively worked on by the following people:
- Bruno Cardoso Lopes : bcl
- AaronNGray : ang
- Someguy : jsg
[edit] Interested Parties
People with a 'vested' interest in this sub project:
- (please add yourself !)
[edit] Project Tasks
| Description | Milestone | Status | Assignment |
|---|---|---|---|
| Implement initial ObjectCodeEmitter | 1 | Prototype | ang |
| Implement initial BinaryObject | 1 | Prototype | ang, bcl |
| Implement base ObjectModule | 1 | Delayed | ang |
| Implement base ObjectModuleGenerator | 1 | Delayed | ang |
| Integrate existing ELFWriter and ELFCodeEmitter with BinaryObject | 4 | Done | bcl |
| Integrate existing ELFWriter and ELFCodeEmitter with ObjectCodeEmitter | 4 | Active | bcl |
| Integrate existing MachOWriter and MachOCodeEmitter with ObjectCodeEmitter | 4 | Done | ang |
| Integrate existing MachOWriter and MachOCodeEmitter with BinaryObject | 4 | To be done | ang |
| Prototype COFFWriter and COFFCodeEmitter | 4 | Active | ang |
| Implement ELFModuleGenerator | bcl, jsg | ||
| Implement COFFModuleGenerator | ang, jsg | ||
| Implement MachOModuleGenerator | jsg | ||
| Implement ObjectModuleBase | ang,jsg | ||
| Implement ELFObjectModule | ang,jsg | ||
| Implement COFFObjectModule | ang | ||
| Implement MachOObjectModule | jsg | ||
| Implement ObjectModuleWriter | ang, jsg | ||
| Implement ELFModuleWriter | bcl, jsg | ||
| Implement COFFModuleWriter | ang, jsg | ||
| Implement MachOModuleWriter | jsg | ||
| Implement base ABIInfo | jsg | ||
| Implement COFF ABIInfo (targeting 32bit little-endian X86 COFF) | |||
| Implement ELF ABIInfo (targeting 32bit little-endian X86 linux ELF) | |||
| Implement MachO ABIInfo (targeting 32bit little-endian X86 mac) | jsg | ||
| Refactor class TargetAsmInfo into TargetInfo and TargetAsmInfo | |||
| Implement base ObjectModuleReader | ang | ||
| Implement ELFModuleReader | jsg,ang | ||
| Implement COFFModuleReader | ang | ||
| Implement MachOModuleReader | jsg | ||
| Write ObjectModule circular file test set | ang | ||
| Write Object Module Dumpers | ang | ||
| Implement llvm-gcc support | ang | ||
| Implement Dwarf style EH | |||
| Implement Dwarf debug info | bcl | ||
| Implement COFF debug info | ang | ||
| Implement MachO debug info | jsg | ||
| Implement GC | |||
| Update X86CodeEmitter to use our new scheme | 2 | Active | ang |
| Update PPCCodeEmitter to use our new scheme | 2 | Active | ang |
| Update ARMCodeEmitter to use our new scheme | 2 | Active | ang |
| Update AlphaCodeEmitter to use our new scheme | 2 | Active | ang |
| Test X86 COFF emission | ang, jsg | ||
| Test X86 ELF emission | bcl, jsg, ang | ||
| Test X86 MachO emission | jsg, ang | ||
| Update PPCCodeEmitter to support relocation properly | ang / jsg | ||
| Implement MachO ABIInfo (targeting 32bit big-endian PPC mac) | jsg | ||
| Test MachO PPC emission | ang, jsg | ||
| Implement JITCodeEmitter | 3 | Done | ang |
| Test JITCodeEmitter | 3 | Done | ang |
| Optimize JITCodeEmitter | Active | ang | |
| Inline assembly |
[edit] Project Timeline
| Milestone | Name | Status | Comments |
|---|---|---|---|
| 1 | Basic infrastructure | Underway | Implement the basic infrastructure, including an initial ObjectCodeEmitter, ObjectModule, ABIInfo, and ObjectModuleGenerator |
| 2 | Basic infrastructure | Active | ARM, Alpha, PowerPC and X86 CodeEmitter code emitter abstraction |
| 3 | Basic infrastructure | Done and Applied | JITCodeEmitter class and ARM, Alpha, PowerPC and X86 CodeEmitter support |
| 4 | Basic infrastructure | Active | ObjectCodeEmitter class and ARM, Alpha, PowerPC and X86 CodeEmitter support |
[edit] Patches
JITCodeEmitter class and implementation patch file list and documentation - Applied with mods to formatting and generic parameter naming
ObjectCodeEmitter and Code Emitter patch file list and documentation
Reworked MachO code File reorganization and minor refactoring
MachO File reorganization and minor refactoring patch
[edit] Prototype DOE ObjectCodeEmitter
MachO DOE patch file list and patch documentation
MachO PowerPC tests This is the llvm/test/CodeGen/PowerPC test set adapted for the MachO backend. Its probably not a very good test set but all I could muster initially.
[edit] Diagrams
- DOE Overview
- Code Emitter Hierarchy
- Existing MachO Writer
- Non functional Existing ELF Writer
- Prototype DOE MachO Writer

