MC: Remove MCSubtargetInfo() default constructor
authorDuncan P. N. Exon Smith <dexonsmith@apple.com>
Fri, 10 Jul 2015 22:43:42 +0000 (22:43 +0000)
committerDuncan P. N. Exon Smith <dexonsmith@apple.com>
Fri, 10 Jul 2015 22:43:42 +0000 (22:43 +0000)
commit754e21f24462b5690707580d5f14220ea363ee19
treebecc3083c9af013863bec6c056d8da39d9d435a6
parentbb57d73805449f9c36de2bd14a44e8cd4ff36d4a
MC: Remove MCSubtargetInfo() default constructor

Force all creators of `MCSubtargetInfo` to immediately initialize it,
merging the default constructor and the initializer into an initializing
constructor.  Besides cleaning up the code a little, this makes it clear
that the initializer is never called again later.

Out-of-tree backends need a trivial change: instead of calling:

    auto *X = new MCSubtargetInfo();
    InitXYZMCSubtargetInfo(X, ...);
    return X;

they should call:

    return createXYZMCSubtargetInfoImpl(...);

There's no real functionality change here.

llvm-svn: 241957
18 files changed:
llvm/include/llvm/MC/MCSubtargetInfo.h
llvm/include/llvm/Target/TargetSubtargetInfo.h
llvm/lib/MC/MCSubtargetInfo.cpp
llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp
llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp
llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
llvm/lib/Target/BPF/MCTargetDesc/BPFMCTargetDesc.cpp
llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp
llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCTargetDesc.cpp
llvm/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.cpp
llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCTargetDesc.cpp
llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp
llvm/lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.cpp
llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCTargetDesc.cpp
llvm/lib/Target/TargetSubtargetInfo.cpp
llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp
llvm/lib/Target/XCore/MCTargetDesc/XCoreMCTargetDesc.cpp
llvm/utils/TableGen/SubtargetEmitter.cpp