http://llvm.org/bugs/show_bug.cgi?id=3813
Summary: MachO and ELF Writers/MachineCodeEmitters are hard-coded
into LLVMTargetMachine
Product: libraries
Version: 2.5
Platform: PC
OS/Version: All
Status: NEW
Severity: enhancement
Priority: P2
Component: Common Code Generator Code
AssignedTo: [email protected]
ReportedBy: [email protected]
CC: [email protected]
Currently, the MachO and ELF Writers and MachineCodeEmitters are hard-coded
into LLVMTargetMachine and llc.
In other words, the 'object file generation' capabilities of the Common Code
Generator are not generic.
LLVMTargetMachine::addPassesToEmitFile explicitly checks whether the derived
backend TargetMachine implements one of getMachOWriterInfo or getELFWriterInfo,
and returns a corresponding FileModel enum value.
llc's main function uses the resulting FileModel value to determine which of
the {AddMachOWriter,AddELFWriter} functions to call.
This is limiting for a number of reasons:
1. If a given platform (e.g. x86) may support both MachO and ELF, MachO will be
selected, as it is checked first. This is bad behaviour, it should be up to the
user to decide which object format he wants.
2. Extension of the object file generation capabilities to include new object
file formats is difficult, and requires modifications to LLVM code (not just a
plugin).
I suggest transforming the {getMachOWriterInfo, getELFWriterInfo} functions (on
TargetMachine) into a single (templated?) getObjectFileWriterInfo function.
Additionally a addObjectFileWriter member should be added to TargetMachine,
taking the place of the static {AddMachOWriter, AddELFWriter} functions.
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs