llvm-project/llvm/lib/MC
David Greene 2e6f6b4dad [System Model] [TTI] Update cache and prefetch TTI interfaces
Re-apply 9fdfb045ae8b/r365676 with fixes for PPC and Hexagon.  This involved
moving defaults from TargetTransformInfoImplBase to MCSubtargetInfo.

Rework the TTI cache and software prefetching APIs to prepare for the
introduction of a general system model.  Changes include:

- Marking existing interfaces const and/or override as appropriate
- Adding comments
- Adding BasicTTIImpl interfaces that delegate to a subtarget
  implementation
- Moving the default TargetTransformInfoImplBase implementation to a default
  MCSubtarget implementation

Only a handful of targets use these interfaces currently: AArch64, Hexagon, PPC
and SystemZ.  AArch64 already has a custom subtarget implementation, so its
custom TTI implementation is migrated to use the new facilities in BasicTTIImpl
to invoke its custom subtarget implementation.  The custom TTI implementations
continue to exist for the other targets with this change.  They are not moved
over to subtarget-based implementations.

The end goal is to have the default subtarget implementation defer to the system
model defined by the target.  With this change, the default MCSubtargetInfo
implementation essentially returns the defaults TargetTransformInfoImplBase used
to return.  Existing users of TTI defaults will hit the defaults now in
MCSubtargetInfo.  Targets that define their own custom TTI implementations won't
use the BasicTTIImpl implementations that route to the subtarget.

Once system models are in place for the targets that use these interfaces, their
custom TTI implementations can be removed.

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

llvm-svn: 374205
2019-10-09 19:51:48 +00:00
..
MCDisassembler Fix leaks in LLVMCreateDisasmCPUFeatures 2019-06-26 16:13:17 +00:00
MCParser [IA] Recognize hexadecimal escape sequences 2019-10-08 04:39:52 +00:00
CMakeLists.txt Boilerplate for producing XCOFF object files from the PowerPC backend. 2019-07-09 19:21:01 +00:00
ConstantPools.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
ELFObjectWriter.cpp Revert "[MC] Emit unused undefined symbol even if its binding is not set" 2019-09-30 18:13:48 +00:00
LLVMBuild.txt Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
MCAsmBackend.cpp [DebugInfo] Generate fixups as emitting DWARF .debug_frame/.eh_frame. 2019-07-19 02:03:34 +00:00
MCAsmInfo.cpp Move addInitialFrameState out of line and remove the MCDwarf.h include. 2019-04-12 06:57:45 +00:00
MCAsmInfoCOFF.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
MCAsmInfoDarwin.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
MCAsmInfoELF.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
MCAsmInfoWasm.cpp [WebAssembly] Add symbol flag to the binary format llvm.used 2019-02-07 01:24:44 +00:00
MCAsmInfoXCOFF.cpp [AIX]Emit function descriptor csect in assembly 2019-09-26 19:38:32 +00:00
MCAsmMacro.cpp MCAsmMacro: add `#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)` to some dump() declarations 2019-08-20 04:14:43 +00:00
MCAsmStreamer.cpp [AIX]Emit function descriptor csect in assembly 2019-09-26 19:38:32 +00:00
MCAssembler.cpp [Alignment][NFC] Remove unneeded llvm:: scoping on Align types 2019-09-27 12:54:21 +00:00
MCCodeEmitter.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
MCCodePadder.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
MCCodeView.cpp [codeview] Revert inline line table change of r362264 2019-05-31 22:55:03 +00:00
MCContext.cpp Adds support for writing the .bss section for XCOFF object files. 2019-08-20 22:03:18 +00:00
MCDwarf.cpp Do a sweep of symbol internalization. NFC. 2019-08-23 19:59:23 +00:00
MCELFObjectTargetWriter.cpp MC/ELF: Allow targets to set ABI version 2019-02-14 22:42:09 +00:00
MCELFStreamer.cpp [Alignment][NFC] Remove unneeded llvm:: scoping on Align types 2019-09-27 12:54:21 +00:00
MCExpr.cpp [MC] Delete an overload of MCExpr::evaluateKnownAbsolute and its associated hack 2019-08-20 07:42:04 +00:00
MCFragment.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
MCInst.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
MCInstPrinter.cpp [MC] Fix undefined behavior in MCInstPrinter::formatHex 2019-09-06 01:13:32 +00:00
MCInstrAnalysis.cpp [MC] Add MCInstrAnalysis::evaluateMemoryOperandAddress 2019-07-25 06:57:09 +00:00
MCInstrDesc.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
MCLabel.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
MCLinkerOptimizationHint.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
MCMachOStreamer.cpp [AIX]Emit function descriptor csect in assembly 2019-09-26 19:38:32 +00:00
MCMachObjectTargetWriter.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
MCNullStreamer.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
MCObjectFileInfo.cpp AArch64: support arm64_32, an ILP32 slice for watchOS. 2019-09-12 10:22:23 +00:00
MCObjectStreamer.cpp [Alignment][NFC] Remove unneeded llvm:: scoping on Align types 2019-09-27 12:54:21 +00:00
MCObjectWriter.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
MCRegisterInfo.cpp MCRegisterInfo: Merge getLLVMRegNum and getLLVMRegNumFromEH 2019-09-24 09:31:02 +00:00
MCSchedule.cpp [MC][X86] Correctly model additional operand latency caused by transfer delays from the integer to the floating point unit. 2019-01-23 16:35:07 +00:00
MCSection.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
MCSectionCOFF.cpp [MC] Clean up unused inline function and non-anchor defaulted destructors; NFCI 2019-02-09 02:11:51 +00:00
MCSectionELF.cpp Add IR support, ELF section and user documentation for partitioning feature. 2019-05-29 03:29:01 +00:00
MCSectionMachO.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
MCSectionWasm.cpp [WebAssembly] Update MC for bulk memory 2019-02-19 22:56:19 +00:00
MCSectionXCOFF.cpp [AIX]Emit function descriptor csect in assembly 2019-09-26 19:38:32 +00:00
MCStreamer.cpp [X86] Print register names in .seh_* directives 2019-08-30 21:23:05 +00:00
MCSubtargetInfo.cpp [System Model] [TTI] Update cache and prefetch TTI interfaces 2019-10-09 19:51:48 +00:00
MCSymbol.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
MCSymbolELF.cpp MCSymbolicELF: simplify. (Flags & (x << s)) >> s is equivalent to Flags >> s & x 2019-04-10 10:30:22 +00:00
MCTargetOptions.cpp Remove ASan asm instrumentation. 2019-03-11 21:50:10 +00:00
MCValue.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
MCWasmObjectTargetWriter.cpp [WebAssembly] Make __attribute__((used)) not imply export. 2019-08-29 22:40:00 +00:00
MCWasmStreamer.cpp [WebAssembly] Make __attribute__((used)) not imply export. 2019-08-29 22:40:00 +00:00
MCWin64EH.cpp [AArch64][Windows] Compute function length correctly in unwind tables. 2019-05-03 00:10:45 +00:00
MCWinCOFFStreamer.cpp [Alignment][NFC] Remove unneeded llvm:: scoping on Align types 2019-09-27 12:54:21 +00:00
MCWinEH.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
MCXCOFFObjectTargetWriter.cpp Boilerplate for producing XCOFF object files from the PowerPC backend. 2019-07-09 19:21:01 +00:00
MCXCOFFStreamer.cpp Handle local commons for XCOFF object file writing 2019-08-27 15:14:45 +00:00
MachObjectWriter.cpp [Alignment][NFC] Remove unneeded llvm:: scoping on Align types 2019-09-27 12:54:21 +00:00
StringTableBuilder.cpp Adds support for writing the .bss section for XCOFF object files. 2019-08-20 22:03:18 +00:00
SubtargetFeature.cpp [Subtarget] Move SubtargetFeatureKV/SubtargetInfoKV from SubtargetFeature.h to MCSubtargetInfo.h. Move all code that operates on ProcFeatures and ProcDesc arrays to MCSubtargetInfo. 2019-03-05 18:54:30 +00:00
WasmObjectWriter.cpp [MC][WebAssembly] Error on data symbols in the text section. 2019-09-25 23:33:16 +00:00
WinCOFFObjectWriter.cpp Unify the two CRC implementations 2019-10-09 09:06:30 +00:00
XCOFFObjectWriter.cpp [AIX]Emit function descriptor csect in assembly 2019-09-26 19:38:32 +00:00