#define LLVM_TARGET_TARGETMACHINEIMPLS_H
namespace llvm {
+ /// Command line options shared between TargetMachine implementations -
+ /// these should go in their own header eventually.
+ ///
+ extern bool PrintMachineCode;
+ extern bool NoFramePointerElim;
class TargetMachine;
class Module;
class IntrinsicLowering;
- // allocateSparcTargetMachine - Allocate and return a subclass of
- // TargetMachine that implements the Sparc backend. This takes ownership of
- // the IntrinsicLowering pointer, deleting it when the target machine is
+ // allocateCTargetMachine - Allocate and return a subclass of TargetMachine
+ // that implements emits C code. This takes ownership of the
+ // IntrinsicLowering pointer, deleting it when the target machine is
// destroyed.
//
- TargetMachine *allocateSparcTargetMachine(const Module &M,
+ TargetMachine *allocateCTargetMachine(const Module &M,
+ IntrinsicLowering *IL = 0);
+
+ // allocateSparcV9TargetMachine - Allocate and return a subclass of
+ // TargetMachine that implements the 64-bit Sparc backend. This takes
+ // ownership of the IntrinsicLowering pointer, deleting it when the target
+ // machine is destroyed.
+ //
+ TargetMachine *allocateSparcV9TargetMachine(const Module &M,
IntrinsicLowering *IL = 0);
// allocateX86TargetMachine - Allocate and return a subclass of TargetMachine
//
TargetMachine *allocateX86TargetMachine(const Module &M,
IntrinsicLowering *IL = 0);
+
+ // allocatePowerPCTargetMachine - Allocate and return a subclass
+ // of TargetMachine that implements the PowerPC backend. This takes
+ // ownership of the IntrinsicLowering pointer, deleting it when
+ // the target machine is destroyed.
+ //
+ TargetMachine *allocatePowerPCTargetMachine(const Module &M,
+ IntrinsicLowering *IL = 0);
} // End llvm namespace
#endif