mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-19 19:52:00 +00:00
TableGen: Delete some copy constuctors
Some register related machinery relies on uniqued, static pointers for register classes and subregisters, so try to make sure these are never copied.
This commit is contained in:
parent
6f8d4d409e
commit
222988e058
@ -86,6 +86,7 @@ namespace llvm {
|
||||
|
||||
CodeGenSubRegIndex(Record *R, unsigned Enum);
|
||||
CodeGenSubRegIndex(StringRef N, StringRef Nspace, unsigned Enum);
|
||||
CodeGenSubRegIndex(CodeGenSubRegIndex&) = delete;
|
||||
|
||||
const std::string &getName() const { return Name; }
|
||||
const std::string &getNamespace() const { return Namespace; }
|
||||
@ -442,6 +443,7 @@ namespace llvm {
|
||||
std::vector<unsigned> &RegUnits) const;
|
||||
|
||||
CodeGenRegisterClass(CodeGenRegBank&, Record *R);
|
||||
CodeGenRegisterClass(CodeGenRegisterClass&) = delete;
|
||||
|
||||
// A key representing the parts of a register class used for forming
|
||||
// sub-classes. Note the ordering provided by this key is not the same as
|
||||
@ -611,6 +613,7 @@ namespace llvm {
|
||||
|
||||
public:
|
||||
CodeGenRegBank(RecordKeeper&, const CodeGenHwModes&);
|
||||
CodeGenRegBank(CodeGenRegBank&) = delete;
|
||||
|
||||
SetTheory &getSets() { return Sets; }
|
||||
|
||||
|
@ -141,7 +141,7 @@ bool RISCVCompressInstEmitter::validateRegister(Record *Reg, Record *RegClass) {
|
||||
assert(Reg->isSubClassOf("Register") && "Reg record should be a Register\n");
|
||||
assert(RegClass->isSubClassOf("RegisterClass") && "RegClass record should be"
|
||||
" a RegisterClass\n");
|
||||
CodeGenRegisterClass RC = Target.getRegisterClass(RegClass);
|
||||
const CodeGenRegisterClass &RC = Target.getRegisterClass(RegClass);
|
||||
const CodeGenRegister *R = Target.getRegisterByName(Reg->getName().lower());
|
||||
assert((R != nullptr) &&
|
||||
("Register" + Reg->getName().str() + " not defined!!\n").c_str());
|
||||
@ -160,8 +160,8 @@ bool RISCVCompressInstEmitter::validateTypes(Record *DagOpType,
|
||||
|
||||
if (DagOpType->isSubClassOf("RegisterClass") &&
|
||||
InstOpType->isSubClassOf("RegisterClass")) {
|
||||
CodeGenRegisterClass RC = Target.getRegisterClass(InstOpType);
|
||||
CodeGenRegisterClass SubRC = Target.getRegisterClass(DagOpType);
|
||||
const CodeGenRegisterClass &RC = Target.getRegisterClass(InstOpType);
|
||||
const CodeGenRegisterClass &SubRC = Target.getRegisterClass(DagOpType);
|
||||
return RC.hasSubClass(&SubRC);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user