[PATCH] D58736: [System Model] Introduce a target system model

David Greene via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 27 13:38:05 PST 2019


greened created this revision.
greened added reviewers: Meinersbur, hfinkel, simoll, rengolin, andreadb.
Herald added subscribers: jdoerfert, jsji, mgrang, kbarton, hiraditya, javed.absar, mgorny, nhaehnle, jvesely, nemanjai, arsenm.
Herald added a project: LLVM.

Add the concept of a per-subtarget system model, incorporating information
about caches, execution resources, write-combining buffers and software
prefetching configuration.

This is TableGen-driven so that targets may conveniently define new system
models and associate system models with subtargets.

By default, processor classes use a system model that captures the legacy
values exposed by TargetTransformInfo and/or MCSubtarget and friends.
Targets may opt-in to custom system models by defining them and associating
them in instantiations of the Processor template, similarly to how schedulers
are associated.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D58736

Files:
  llvm/include/llvm/Analysis/TargetTransformInfo.h
  llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
  llvm/include/llvm/CodeGen/BasicTTIImpl.h
  llvm/include/llvm/CodeGen/TargetSubtargetInfo.h
  llvm/include/llvm/MC/MCSubtargetInfo.h
  llvm/include/llvm/MC/MCSystemModel.h
  llvm/include/llvm/Target/Target.td
  llvm/include/llvm/Target/TargetCacheModel.td
  llvm/include/llvm/Target/TargetMemoryModel.td
  llvm/include/llvm/Target/TargetSoftwarePrefetchConfig.td
  llvm/include/llvm/Target/TargetSystemModel.td
  llvm/include/llvm/Target/TargetWCBufferModel.td
  llvm/lib/Analysis/TargetTransformInfo.cpp
  llvm/lib/CodeGen/TargetSubtargetInfo.cpp
  llvm/lib/MC/CMakeLists.txt
  llvm/lib/MC/MCSubtargetInfo.cpp
  llvm/lib/MC/MCSystemModel.cpp
  llvm/lib/Target/AArch64/AArch64Subtarget.h
  llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
  llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
  llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp
  llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h
  llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp
  llvm/lib/Target/PowerPC/PPCTargetTransformInfo.h
  llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h
  llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp
  llvm/test/TableGen/SystemModelEmitter.td
  llvm/unittests/CodeGen/MachineInstrTest.cpp
  llvm/unittests/MC/CMakeLists.txt
  llvm/unittests/MC/SystemModel.cpp
  llvm/utils/TableGen/SubtargetEmitter.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D58736.188611.patch
Type: text/x-patch
Size: 164603 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190227/b064e080/attachment-0001.bin>


More information about the llvm-commits mailing list