diff options
author | John Baldwin <jhb@FreeBSD.org> | 2017-08-14 21:49:38 +0000 |
---|---|---|
committer | John Baldwin <jhb@FreeBSD.org> | 2017-08-14 21:49:38 +0000 |
commit | 1255b165bf03786a6acb326150d0068f09d0bffb (patch) | |
tree | cecc450d9afc92ada572580075716b7bdeb1f24c /llvm/lib/Target/Mips/MipsTargetMachine.cpp | |
parent | 1c617be0541e9c88500f9e2aae49a9d24f6920a3 (diff) | |
download | bcm5719-llvm-1255b165bf03786a6acb326150d0068f09d0bffb.tar.gz bcm5719-llvm-1255b165bf03786a6acb326150d0068f09d0bffb.zip |
[MIPS] Implement support for -mstack-alignment.
Summary:
This is modeled on the implementation for x86 which stores the command line
option in a 'StackAlignOverride' field in MipsSubtarget and then uses this
to compute a 'stackAlignment' value in
MipsSubtarget::initializeSubtargetDependencies.
The stackAlignment() method in MipsSubTarget is renamed to getStackAlignment()
and returns the computed 'stackAlignment'.
Reviewers: sdardis
Reviewed By: sdardis
Subscribers: llvm-commits, arichardson
Differential Revision: https://reviews.llvm.org/D35874
llvm-svn: 310891
Diffstat (limited to 'llvm/lib/Target/Mips/MipsTargetMachine.cpp')
-rw-r--r-- | llvm/lib/Target/Mips/MipsTargetMachine.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/llvm/lib/Target/Mips/MipsTargetMachine.cpp b/llvm/lib/Target/Mips/MipsTargetMachine.cpp index 4ed06471dd9..2f01b24c237 100644 --- a/llvm/lib/Target/Mips/MipsTargetMachine.cpp +++ b/llvm/lib/Target/Mips/MipsTargetMachine.cpp @@ -114,11 +114,12 @@ MipsTargetMachine::MipsTargetMachine(const Target &T, const Triple &TT, getEffectiveCodeModel(CM), OL), isLittle(isLittle), TLOF(llvm::make_unique<MipsTargetObjectFile>()), ABI(MipsABIInfo::computeTargetABI(TT, CPU, Options.MCOptions)), - Subtarget(nullptr), DefaultSubtarget(TT, CPU, FS, isLittle, *this), + Subtarget(nullptr), DefaultSubtarget(TT, CPU, FS, isLittle, *this, + Options.StackAlignmentOverride), NoMips16Subtarget(TT, CPU, FS.empty() ? "-mips16" : FS.str() + ",-mips16", - isLittle, *this), + isLittle, *this, Options.StackAlignmentOverride), Mips16Subtarget(TT, CPU, FS.empty() ? "+mips16" : FS.str() + ",+mips16", - isLittle, *this) { + isLittle, *this, Options.StackAlignmentOverride) { Subtarget = &DefaultSubtarget; initAsmInfo(); } @@ -191,7 +192,7 @@ MipsTargetMachine::getSubtargetImpl(const Function &F) const { // function that reside in TargetOptions. resetTargetOptions(F); I = llvm::make_unique<MipsSubtarget>(TargetTriple, CPU, FS, isLittle, - *this); + *this, Options.StackAlignmentOverride); } return I.get(); } |