1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 03:02:36 +01:00
llvm-mirror/lib/Target/Mips
Matt Arsenault 2398c72d1f Mips/GlobalISel: Use more standard call lowering infrastructure
This also fixes some missing implicit uses on call instructions, adds
missing G_ASSERT_SEXT/ZEXT annotations, and some missing outgoing
sext/zexts. This also fixes not respecting tablegen requested type
promotions.

This starts treating f64 passed in i32 GPRs as a type of custom
assignment, which restores some previously XFAILed tests. This is due
to getNumRegistersForCallingConv returns a static value, but in this
case it is context dependent on other arguments.

Most of the ugliness is reproducing a hack CC_MipsO32 uses in
SelectionDAG. CC_MipsO32 depends on a bunch of vectors populated from
the original IR argument types in MipsCCState. The way this ends up
working in GlobalISel is it only ends up inspecting the most recently
added vector element. I'm pretty sure there are cleaner ways to do
this, but this seemed easier than fixing up the current DAG
handling. This is another case where it would be easier of the
CCAssignFns were passed the original type instead of only the
pre-legalized ones.

There's still a lot of junk here that shouldn't be necessary. This
also likely breaks big endian handling, but it wasn't complete/tested
anyway since the IRTranslator gives up on big endian targets.
2021-07-13 11:04:10 -04:00
..
AsmParser [MIPS] MipsAsmParser - Pass Twine by const reference instead of by value. NFCI. 2021-01-06 14:22:04 +00:00
Disassembler
MCTargetDesc [MC][ELF] Support for zero flag section groups 2021-02-16 14:23:40 -08:00
TargetInfo
CMakeLists.txt
MicroMips32r6InstrFormats.td
MicroMips32r6InstrInfo.td
MicroMipsDSPInstrFormats.td
MicroMipsDSPInstrInfo.td
MicroMipsInstrFormats.td
MicroMipsInstrFPU.td
MicroMipsInstrInfo.td
MicroMipsSizeReduction.cpp
Mips16FrameLowering.cpp
Mips16FrameLowering.h
Mips16HardFloat.cpp Update @llvm.powi to handle different int sizes for the exponent 2021-06-17 09:38:28 +02:00
Mips16HardFloatInfo.cpp
Mips16HardFloatInfo.h
Mips16InstrFormats.td
Mips16InstrInfo.cpp
Mips16InstrInfo.h
Mips16InstrInfo.td
Mips16ISelDAGToDAG.cpp
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
Mips16RegisterInfo.cpp
Mips16RegisterInfo.h
Mips32r6InstrFormats.td
Mips32r6InstrInfo.td
Mips64InstrInfo.td
Mips64r6InstrInfo.td
Mips.h
Mips.td
MipsAnalyzeImmediate.cpp
MipsAnalyzeImmediate.h
MipsAsmPrinter.cpp
MipsAsmPrinter.h
MipsBranchExpansion.cpp
MipsCallingConv.td
MipsCallLowering.cpp Mips/GlobalISel: Use more standard call lowering infrastructure 2021-07-13 11:04:10 -04:00
MipsCallLowering.h Mips/GlobalISel: Use more standard call lowering infrastructure 2021-07-13 11:04:10 -04:00
MipsCCState.cpp Mips/GlobalISel: Use more standard call lowering infrastructure 2021-07-13 11:04:10 -04:00
MipsCCState.h Mips/GlobalISel: Use more standard call lowering infrastructure 2021-07-13 11:04:10 -04:00
MipsCondMov.td
MipsConstantIslandPass.cpp [NFC] Add the getSizeInBytes() interface for MachineConstantPoolValue 2021-01-05 03:22:45 +00:00
MipsDelaySlotFiller.cpp [CSInfo][MIPS] Update CSInfo in delay slot filler 2021-01-18 15:29:59 +01:00
MipsDSPInstrFormats.td
MipsDSPInstrInfo.td
MipsEVAInstrFormats.td
MipsEVAInstrInfo.td
MipsExpandPseudo.cpp [NFC][MC] TargetRegisterInfo::getSubReg is a MCRegister. 2020-12-02 15:46:38 -08:00
MipsFastISel.cpp Revert "Allow invokable sub-classes of IntrinsicInst" 2021-04-20 15:38:38 -07:00
MipsFrameLowering.cpp [NFC][CodeGen] Tidy up TargetRegisterInfo stack realignment functions 2021-03-30 17:31:39 +01:00
MipsFrameLowering.h
MipsInstrFormats.td
MipsInstrFPU.td
MipsInstrInfo.cpp [llvm] Ensure newlines at the end of files (NFC) 2021-01-10 09:24:57 -08:00
MipsInstrInfo.h
MipsInstrInfo.td
MipsInstructionSelector.cpp
MipsISelDAGToDAG.cpp
MipsISelDAGToDAG.h
MipsISelLowering.cpp Mips: Mark special case calling convention handling as custom 2021-07-13 11:04:10 -04:00
MipsISelLowering.h [TargetLowering] getABIAlignmentForCallingConv - pass DataLayout by const reference. NFCI. 2021-06-10 10:55:24 +01:00
MipsLegalizerInfo.cpp Mips/GlobalISel: Use accurate memory LLTs 2021-07-01 20:08:14 -04:00
MipsLegalizerInfo.h
MipsMachineFunction.cpp
MipsMachineFunction.h
MipsMCInstLower.cpp
MipsMCInstLower.h
MipsModuleISelDAGToDAG.cpp
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
MipsOptimizePICCall.cpp
MipsOptionRecord.h
MipsOs16.cpp
MipsPfmCounters.td
MipsPreLegalizerCombiner.cpp [GISel] Support llvm.memcpy.inline 2021-06-30 12:39:05 -07: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
MipsSchedule.td
MipsScheduleGeneric.td
MipsScheduleP5600.td
MipsSEFrameLowering.cpp [NFC][CodeGen] Tidy up TargetRegisterInfo stack realignment functions 2021-03-30 17:31:39 +01:00
MipsSEFrameLowering.h MipsSEFrameLowering.h - remove unused headers. NFCI. 2021-04-22 11:32:29 +01:00
MipsSEInstrInfo.cpp
MipsSEInstrInfo.h
MipsSEISelDAGToDAG.cpp
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
MipsSERegisterInfo.cpp [NFC][CodeGen] Tidy up TargetRegisterInfo stack realignment functions 2021-03-30 17:31:39 +01:00
MipsSERegisterInfo.h
MipsSubtarget.cpp
MipsSubtarget.h
MipsTargetMachine.cpp reland [IR] make -stack-alignment= into a module attr 2021-06-08 10:59:46 -07:00
MipsTargetMachine.h
MipsTargetObjectFile.cpp
MipsTargetObjectFile.h
MipsTargetStreamer.h [llvm] Forward-declare formatted_raw_ostream (NFC) 2021-01-28 22:21:13 -08:00
MSA.txt
Relocation.txt