1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 04:02:41 +01:00
llvm-mirror/lib
Andrea Di Biagio 13160fb6a6 [MCA][LSUnit] Track loads and stores until retirement.
Before this patch, loads and stores were only tracked by their corresponding
queues in the LSUnit from dispatch until execute stage. In practice we should be
more conservative and assume that memory opcodes leave their queues at
retirement stage.

Basically, loads should leave the load queue only when they have completed and
delivered their data. We conservatively assume that a load is completed when it
is retired. Stores should be tracked by the store queue from dispatch until
retirement. In practice, stores can only leave the store queue if their data can
be written to the data cache.

This is mostly a mechanical change. With this patch, the retire stage notifies
the LSUnit when a memory instruction is retired. That would triggers the release
of LDQ/STQ entries.  The only visible change is in memory tests for the bdver2
model. That is because bdver2 is the only model that defines the load/store
queue size.

This patch partially addresses PR39830.

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

llvm-svn: 374034
2019-10-08 10:46:01 +00:00
..
Analysis [LoopVectorize][PowerPC] Estimate int and float register pressure separately in loop-vectorize 2019-10-08 03:28:33 +00:00
AsmParser [X86] Add new calling convention that guarantees tail call optimization 2019-10-07 22:28:58 +00:00
BinaryFormat
Bitcode [Bitcode] Update naming of UNOP_NEG to UNOP_FNEG 2019-10-07 20:41:25 +00:00
Bitstream
CodeGen [X86] Add new calling convention that guarantees tail call optimization 2019-10-07 22:28:58 +00:00
DebugInfo Revert "[Symbolize] Use the local MSVC C++ demangler instead of relying on dbghelp. NFC." 2019-10-04 07:22:37 +00:00
Demangle Fix uninitialized variable warning. NFCI. 2019-10-02 11:48:45 +00:00
ExecutionEngine Second attempt to add iterator_range::empty() 2019-10-07 18:14:24 +00:00
Fuzzer
FuzzMutate
IR [Tools] Mark output of tools as text if it is text 2019-10-08 08:21:20 +00:00
IRReader
LineEditor
Linker [IRMover] Don't map globals if their types are the same 2019-09-11 18:35:49 +00:00
LTO [ThinLTO/WPD] Ensure devirtualized targets use promoted symbol when necessary 2019-10-02 16:36:59 +00:00
MC [IA] Recognize hexadecimal escape sequences 2019-10-08 04:39:52 +00:00
MCA [MCA][LSUnit] Track loads and stores until retirement. 2019-10-08 10:46:01 +00:00
Object ObjectFile makeTriple - silence static analyzer dyn_cast<COFFObjectFile> null dereference warning. NFCI. 2019-10-01 11:25:17 +00:00
ObjectYAML [yaml2obj] - Add a Size tag support for SHT_LLVM_ADDRSIG sections. 2019-10-03 15:02:18 +00:00
Option
Passes [NewPM] Port MachineModuleInfo to the new pass manager. 2019-09-30 17:54:50 +00:00
ProfileData Fix build errors caused by rL373914. 2019-10-07 16:45:47 +00:00
Remarks [Remarks] Pass StringBlockValue as StringRef. 2019-10-07 17:05:09 +00:00
Support Expose ProvidePositionalOption as a public API 2019-10-05 01:37:04 +00:00
TableGen Reland r349624: Let TableGen write output only if it changed, instead of doing so in cmake 2019-10-03 21:22:28 +00:00
Target [ISEL][ARM][AARCH64] Tracking simple parameter forwarding registers 2019-10-08 09:43:05 +00:00
Testing
TextAPI [TextAPI] Remove redundant checking causing warnings. NFC. 2019-09-24 14:52:13 +00:00
ToolDrivers [llvm-lib] Detect duplicate input files 2019-10-02 06:41:52 +00:00
Transforms [LoopRotate] Unconditionally get ScalarEvolution. 2019-10-08 08:46:38 +00:00
WindowsManifest
XRay [XRay] Silence static analyzer dyn_cast<BufferExtents> null dereference warning. NFCI. 2019-09-22 18:47:00 +00:00
CMakeLists.txt
LLVMBuild.txt