#include "Support/DataTypes.h"
class TargetMachine;
-struct TargetCacheInfo : public NonCopyableV {
+struct TargetCacheInfo {
const TargetMachine ⌖
+ TargetCacheInfo(const TargetCacheInfo&); // DO NOT IMPLEMENT
+ void operator=(const TargetCacheInfo&); // DO NOT IMPLEMENT
protected:
unsigned int numLevels;
std::vector<unsigned short> cacheLineSizes;
TargetCacheInfo(const TargetMachine& tgt) : target(tgt) {
Initialize();
}
+ virtual ~TargetCacheInfo() {}
// Default parameters are:
// NumLevels = 2
/// the target machine. All target-specific information should be accessible
/// through this interface.
///
-class TargetMachine : public NonCopyableV {
+class TargetMachine {
const std::string Name;
- const TargetData DataLayout; // Calculates type size & alignment
+ const TargetData DataLayout; // Calculates type size & alignment
+ TargetMachine(const TargetMachine&); // DO NOT IMPLEMENT
+ void operator=(const TargetMachine&); // DO NOT IMPLEMENT
protected:
TargetMachine(const std::string &name, // Can only create subclasses...
bool LittleEndian = false,
//===-- llvm/Target/TargetOptInfo.h ------------------------------*- C++ -*-==//
//
+// FIXME: ADD A COMMENT DESCRIBING THIS FILE!
//
//===----------------------------------------------------------------------===//
#ifndef LLVM_TARGET_TARGETOPTINFO_H
#define LLVM_TARGET_TARGETOPTINFO_H
-#include "Support/DataTypes.h"
+class MachineInstr;
class TargetMachine;
-struct TargetOptInfo : public NonCopyableV {
+struct TargetOptInfo {
const TargetMachine ⌖
+ TargetOptInfo(const TargetOptInfo &); // DO NOT IMPLEMENT
+ void operator=(const TargetOptInfo &); // DO NOT IMPLEMENT
public:
- TargetOptInfo(const TargetMachine& tgt): target(tgt) { }
+ TargetOptInfo(const TargetMachine &TM) : target(TM) { }
- virtual bool IsUselessCopy (const MachineInstr* MI) const = 0;
+ virtual bool IsUselessCopy(const MachineInstr* MI) const = 0;
};
#endif
#ifndef LLVM_TARGET_TARGETREGINFO_H
#define LLVM_TARGET_TARGETREGINFO_H
-#include "Support/NonCopyable.h"
#include "Support/hash_map"
#include <string>
//---------------------------------------------------------------------------
/// TargetRegInfo - Interface to register info of target machine
///
-class TargetRegInfo : public NonCopyableV {
+class TargetRegInfo {
+ TargetRegInfo(const TargetRegInfo &); // DO NOT IMPLEMENT
+ void operator=(const TargetRegInfo &); // DO NOT IMPLEMENT
protected:
// A vector of all machine register classes
//
static int getInvalidRegNum() { return -1; }
TargetRegInfo(const TargetMachine& tgt) : target(tgt) { }
- ~TargetRegInfo() {
+ virtual ~TargetRegInfo() {
for (unsigned i = 0, e = MachineRegClassArr.size(); i != e; ++i)
delete MachineRegClassArr[i];
}