forked from OSchip/llvm-project
[NVPTX] Reduce stack size in NVPTXAsmPrinter::doInitialization().
NVPTXAsmPrinter::doInitialization() was creating an NVPTXSubtarget on the stack. This object is huge, about 80kb. Also it's slow to create. And it's all redundant; we have one in NVPTXTargetMachine anyway! llvm-svn: 349982
This commit is contained in:
parent
9953577cb2
commit
7f41fe3a58
|
@ -788,11 +788,8 @@ bool NVPTXAsmPrinter::doInitialization(Module &M) {
|
|||
// Construct a default subtarget off of the TargetMachine defaults. The
|
||||
// rest of NVPTX isn't friendly to change subtargets per function and
|
||||
// so the default TargetMachine will have all of the options.
|
||||
const Triple &TT = TM.getTargetTriple();
|
||||
StringRef CPU = TM.getTargetCPU();
|
||||
StringRef FS = TM.getTargetFeatureString();
|
||||
const NVPTXTargetMachine &NTM = static_cast<const NVPTXTargetMachine &>(TM);
|
||||
const NVPTXSubtarget STI(TT, CPU, FS, NTM);
|
||||
const auto* STI = static_cast<const NVPTXSubtarget*>(NTM.getSubtargetImpl());
|
||||
|
||||
if (M.alias_size()) {
|
||||
report_fatal_error("Module has aliases, which NVPTX does not support.");
|
||||
|
@ -816,7 +813,7 @@ bool NVPTXAsmPrinter::doInitialization(Module &M) {
|
|||
bool Result = AsmPrinter::doInitialization(M);
|
||||
|
||||
// Emit header before any dwarf directives are emitted below.
|
||||
emitHeader(M, OS1, STI);
|
||||
emitHeader(M, OS1, *STI);
|
||||
OutStreamer->EmitRawText(OS1.str());
|
||||
|
||||
// Emit module-level inline asm if it exists.
|
||||
|
|
Loading…
Reference in New Issue