llvm-project/llvm/lib/Target/Mips
Tomas Matheson a9968c0a33 [NFC][CodeGen] Tidy up TargetRegisterInfo stack realignment functions
Currently needsStackRealignment returns false if canRealignStack returns false.
This means that the behavior of needsStackRealignment does not correspond to
it's name and description; a function might need stack realignment, but if it
is not possible then this function returns false. Furthermore,
needsStackRealignment is not virtual and therefore some backends have made use
of canRealignStack to indicate whether a function needs stack realignment.

This patch attempts to clarify the situation by separating them and introducing
new names:

 - shouldRealignStack - true if there is any reason the stack should be
   realigned

 - canRealignStack - true if we are still able to realign the stack (e.g. we
   can still reserve/have reserved a frame pointer)

 - hasStackRealignment = shouldRealignStack && canRealignStack (not target
   customisable)

Targets can now override shouldRealignStack to indicate that stack realignment
is required.

This change will make it easier in a future change to handle the case where we
need to realign the stack but can't do so (for example when the register
allocator creates an aligned spill after the frame pointer has been
eliminated).

Differential Revision: https://reviews.llvm.org/D98716

Change-Id: Ib9a4d21728bf9d08a545b4365418d3ffe1af4d87
2021-03-30 17:31:39 +01:00
..
AsmParser [MIPS] MipsAsmParser - Pass Twine by const reference instead of by value. NFCI. 2021-01-06 14:22:04 +00:00
Disassembler llvmbuildectomy - replace llvm-build by plain cmake 2020-11-13 10:35:24 +01:00
MCTargetDesc [MC][ELF] Support for zero flag section groups 2021-02-16 14:23:40 -08:00
TargetInfo llvmbuildectomy - replace llvm-build by plain cmake 2020-11-13 10:35:24 +01:00
CMakeLists.txt llvmbuildectomy - replace llvm-build by plain cmake 2020-11-13 10:35:24 +01:00
MSA.txt
MicroMips32r6InstrFormats.td
MicroMips32r6InstrInfo.td
MicroMipsDSPInstrFormats.td
MicroMipsDSPInstrInfo.td
MicroMipsInstrFPU.td
MicroMipsInstrFormats.td [llvm] NFC: Fix trivial typo in rst and td files 2020-04-23 14:26:32 +09:00
MicroMipsInstrInfo.td [llvm] NFC: Fix trivial typo in rst and td files 2020-04-23 14:26:32 +09:00
MicroMipsSizeReduction.cpp [NFC] Silence compiler warning [-Wmissing-braces]. 2020-02-18 10:37:12 -08:00
Mips.h
Mips.td [mips] Rename FeatureMadd4 to FeatureNoMadd4. NFC 2020-07-15 14:39:38 +03:00
Mips16FrameLowering.cpp [MC] Change MCCFIInstruction::createDefCfaOffset to cfiDefCfaOffset which does not negate Offset 2020-05-22 17:07:11 -07:00
Mips16FrameLowering.h ArrayRef'ize restoreCalleeSavedRegisters. NFCI. 2020-02-29 09:50:23 +01:00
Mips16HardFloat.cpp [AsmPrinter] De-capitalize all AsmPrinter::Emit* but EmitInstruction 2020-02-13 17:06:24 -08:00
Mips16HardFloatInfo.cpp
Mips16HardFloatInfo.h
Mips16ISelDAGToDAG.cpp Mips: Don't store MachineFunction in MipsFunctionInfo 2020-06-30 16:08:51 -04:00
Mips16ISelDAGToDAG.h
Mips16ISelLowering.cpp [TargetLowering] Use Align in allowsMisalignedMemoryAccesses. 2021-02-04 19:22:06 -08:00
Mips16ISelLowering.h [TargetLowering] Use Align in allowsMisalignedMemoryAccesses. 2021-02-04 19:22:06 -08:00
Mips16InstrFormats.td
Mips16InstrInfo.cpp ArrayRef'ize spillCalleeSavedRegisters. NFCI. 2020-02-08 12:19:23 +01:00
Mips16InstrInfo.h [NFC] unsigned->Register in storeRegTo/loadRegFromStack 2020-02-03 14:22:16 +01:00
Mips16InstrInfo.td [llvm] NFC: Fix trivial typo in rst and td files 2020-04-23 14:26:32 +09:00
Mips16RegisterInfo.cpp CodeGen: More conversions to use Register 2020-04-07 18:54:36 -04:00
Mips16RegisterInfo.h [Mips] Remove unused forward declarations. NFC. 2020-04-23 15:02:18 +01:00
Mips32r6InstrFormats.td
Mips32r6InstrInfo.td
Mips64InstrInfo.td [mips] Implement sle/sleu pseudo instructions 2020-03-22 23:34:31 +03:00
Mips64r6InstrInfo.td
MipsAnalyzeImmediate.cpp
MipsAnalyzeImmediate.h
MipsAsmPrinter.cpp [XRay] Change mips to use version 2 sled (PC-relative address) 2020-09-20 17:59:57 -07:00
MipsAsmPrinter.h [AsmPrinter][MCStreamer] De-capitalize EmitInstruction and EmitCFI* 2020-02-13 22:08:55 -08:00
MipsBranchExpansion.cpp [Mips] Make MipsBranchExpansion aware of BBIT family of branch 2020-03-31 09:20:51 +02:00
MipsCCState.cpp [ADT/STLExtras.h] - Add llvm::is_sorted wrapper and update callers. 2020-04-14 14:11:02 +03:00
MipsCCState.h
MipsCallLowering.cpp GlobalISel: Fix marking byval arguments as immutable 2021-03-12 09:01:53 -05:00
MipsCallLowering.h [GlobalISel] Base implementation for sret demotion. 2021-01-06 10:30:50 +05:30
MipsCallingConv.td
MipsCondMov.td
MipsConstantIslandPass.cpp [NFC] Add the getSizeInBytes() interface for MachineConstantPoolValue 2021-01-05 03:22:45 +00:00
MipsDSPInstrFormats.td [TableGen] Support combining AssemblerPredicates with ORs 2020-03-13 17:13:51 +00:00
MipsDSPInstrInfo.td
MipsDelaySlotFiller.cpp [CSInfo][MIPS] Update CSInfo in delay slot filler 2021-01-18 15:29:59 +01:00
MipsEVAInstrFormats.td
MipsEVAInstrInfo.td
MipsExpandPseudo.cpp [NFC][MC] TargetRegisterInfo::getSubReg is a MCRegister. 2020-12-02 15:46:38 -08:00
MipsFastISel.cpp Mips: Don't store MachineFunction in MipsFunctionInfo 2020-06-30 16:08:51 -04:00
MipsFrameLowering.cpp [NFC][CodeGen] Tidy up TargetRegisterInfo stack realignment functions 2021-03-30 17:31:39 +01:00
MipsFrameLowering.h
MipsISelDAGToDAG.cpp Mips: Don't store MachineFunction in MipsFunctionInfo 2020-06-30 16:08:51 -04:00
MipsISelDAGToDAG.h
MipsISelLowering.cpp [MIPS] Fix lowering of irregular vector arguments 2021-03-11 19:56:04 +01:00
MipsISelLowering.h [SelectionDAG][X86][PowerPC][Mips] Replace the default implementation of LowerOperationWrapper with the X86 and PowerPC version. 2020-11-20 10:06:53 -08:00
MipsInstrFPU.td [mips] Implement add.ps, mul.ps and sub.ps 2020-10-30 10:59:15 +03:00
MipsInstrFormats.td
MipsInstrInfo.cpp [llvm] Ensure newlines at the end of files (NFC) 2021-01-10 09:24:57 -08:00
MipsInstrInfo.h [CSInfo][MIPS] Describe parameter value loaded by ADDiu 2020-06-04 12:39:56 +02:00
MipsInstrInfo.td [mips] Rename FeatureMadd4 to FeatureNoMadd4. NFC 2020-07-15 14:39:38 +03:00
MipsInstructionSelector.cpp Mips: Don't store MachineFunction in MipsFunctionInfo 2020-06-30 16:08:51 -04:00
MipsLegalizerInfo.cpp [llvm] Use llvm::is_contained (NFC) 2021-02-14 08:36:20 -08:00
MipsLegalizerInfo.h GlobalISel: Pass LegalizerHelper to custom legalize callbacks 2020-06-18 17:17:38 -04:00
MipsMCInstLower.cpp
MipsMCInstLower.h
MipsMSAInstrFormats.td
MipsMSAInstrInfo.td [Mips] Cleanup isel patterns to use 'vnot' instead of (xor X, immAllOnesV). NFCI 2021-01-31 20:01:05 -08:00
MipsMTInstrFormats.td
MipsMTInstrInfo.td
MipsMachineFunction.cpp [Alignment][NFC] Migrate MachineFrameInfo::CreateStackObject to Align 2020-07-01 07:28:11 +00:00
MipsMachineFunction.h Mips: Don't store MachineFunction in MipsFunctionInfo 2020-06-30 16:08:51 -04:00
MipsModuleISelDAGToDAG.cpp
MipsOptimizePICCall.cpp DomTree: Remove getChildren() accessor 2020-07-06 21:58:11 +02:00
MipsOptionRecord.h
MipsOs16.cpp
MipsPfmCounters.td
MipsPreLegalizerCombiner.cpp [Alignment][NFC] MachineMemOperand::getAlign/getBaseAlign 2020-03-27 15:49:13 +00:00
MipsRegisterBankInfo.cpp GlobalISel: Do not set observer of MachineIRBuilder in LegalizerHelper 2021-01-13 10:44:31 -05:00
MipsRegisterBankInfo.h [llvm] Remove redundant string initialization (NFC) 2021-01-12 21:43:46 -08:00
MipsRegisterBanks.td
MipsRegisterInfo.cpp [NFC][CodeGen] Tidy up TargetRegisterInfo stack realignment functions 2021-03-30 17:31:39 +01:00
MipsRegisterInfo.h
MipsRegisterInfo.td [TableGen] Drop deprecated leading # operation (NOP) and replace ## with # 2020-04-25 16:26:45 -07:00
MipsSEFrameLowering.cpp [NFC][CodeGen] Tidy up TargetRegisterInfo stack realignment functions 2021-03-30 17:31:39 +01:00
MipsSEFrameLowering.h [SVE] Return StackOffset for TargetFrameLowering::getFrameIndexReference. 2020-11-05 11:02:18 +00:00
MipsSEISelDAGToDAG.cpp Mips: Don't store MachineFunction in MipsFunctionInfo 2020-06-30 16:08:51 -04:00
MipsSEISelDAGToDAG.h
MipsSEISelLowering.cpp [TargetLowering] Use Align in allowsMisalignedMemoryAccesses. 2021-02-04 19:22:06 -08:00
MipsSEISelLowering.h [TargetLowering] Use Align in allowsMisalignedMemoryAccesses. 2021-02-04 19:22:06 -08:00
MipsSEInstrInfo.cpp [Mips] Make MipsBranchExpansion aware of BBIT family of branch 2020-03-31 09:20:51 +02:00
MipsSEInstrInfo.h [Mips] Make MipsBranchExpansion aware of BBIT family of branch 2020-03-31 09:20:51 +02:00
MipsSERegisterInfo.cpp [NFC][CodeGen] Tidy up TargetRegisterInfo stack realignment functions 2021-03-30 17:31:39 +01:00
MipsSERegisterInfo.h [Mips] Remove unused forward declarations. NFC. 2020-04-23 15:02:18 +01:00
MipsSchedule.td [mips] Implement add.ps, mul.ps and sub.ps 2020-10-30 10:59:15 +03:00
MipsScheduleGeneric.td [mips] Implement add.ps, mul.ps and sub.ps 2020-10-30 10:59:15 +03:00
MipsScheduleP5600.td [mips] Implement add.ps, mul.ps and sub.ps 2020-10-30 10:59:15 +03:00
MipsSubtarget.cpp [X86][MC][Target] Initial backend support a tune CPU to support -mtune 2020-08-14 15:31:50 -07:00
MipsSubtarget.h [X86][MC][Target] Initial backend support a tune CPU to support -mtune 2020-08-14 15:31:50 -07:00
MipsTargetMachine.cpp [AArch64][GlobalISel] Enable use of the optsize predicate in the selector. 2021-03-02 12:55:51 -08:00
MipsTargetMachine.h Support addrspacecast initializers with isNoopAddrSpaceCast 2020-07-31 10:42:43 -04:00
MipsTargetObjectFile.cpp [Target] Use Align in TargetLoweringObjectFile::getSectionForConstant. 2020-05-21 15:23:29 -07:00
MipsTargetObjectFile.h [Target] Use Align in TargetLoweringObjectFile::getSectionForConstant. 2020-05-21 15:23:29 -07:00
MipsTargetStreamer.h [llvm] Forward-declare formatted_raw_ostream (NFC) 2021-01-28 22:21:13 -08:00
Relocation.txt