1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01:00
llvm-mirror/lib
Florian Hahn 421b40f37f [Matrix] Mark expressions shared between multiple remarks.
This patch adds support for explicitly highlighting sub-expressions
shared by multiple leaf nodes. For example consider the following
code

  %shared.load = tail call <8 x double> @llvm.matrix.columnwise.load.v8f64.p0f64(double* %arg1, i32 %stride, i32 2, i32 4), !dbg !10, !noalias !10
  %trans = tail call <8 x double> @llvm.matrix.transpose.v8f64(<8 x double> %shared.load, i32 2, i32 4), !dbg !10
  tail call void @llvm.matrix.columnwise.store.v8f64.p0f64(<8 x double> %trans, double* %arg3, i32 10, i32 4, i32 2), !dbg !10
  %load.2 = tail call <30 x double> @llvm.matrix.columnwise.load.v30f64.p0f64(double* %arg3, i32 %stride, i32 2, i32 15), !dbg !10, !noalias !10
  %mult = tail call <60 x double> @llvm.matrix.multiply.v60f64.v8f64.v30f64(<8 x double> %trans, <30 x double> %load.2, i32 4, i32 2, i32 15), !dbg !11
  tail call void @llvm.matrix.columnwise.store.v60f64.p0f64(<60 x double> %mult, double* %arg2, i32 10, i32 4, i32 15), !dbg !11

We have two leaf nodes (the 2 stores) and the first store stores %trans
which is also used by the matrix multiply %mult. We generate separate
remarks for each leaf (stores). To denote that parts are shared, the
shared expressions are marked as shared (), with a reference to the
other remark that shares it. The operation summary also denotes the
shared operations separately.

Reviewers: anemet, Gerolf, thegameg, hfinkel, andrew.w.kaylor, LuoYuanke

Reviewed By: anemet

Differential Revision: https://reviews.llvm.org/D72526
2020-01-28 09:27:55 -08:00
..
Analysis [instrinsics] Add @llvm.memcpy.inline instrinsics 2020-01-28 09:42:01 +01:00
AsmParser [ThinLTO] Summarize vcall_visibility metadata 2020-01-23 13:19:56 -08:00
BinaryFormat DWARFDebugLine.cpp: Format unknown line number standard opcodes 2020-01-15 10:45:50 -05:00
Bitcode [ThinLTO] Summarize vcall_visibility metadata 2020-01-23 13:19:56 -08:00
Bitstream
CodeGen [NFC][RDA] typedef SmallPtrSetImpl<MachineInstr*> 2020-01-28 13:15:44 +00:00
DebugInfo Revert "[DebugInfo] Make most debug line prologue errors non-fatal to parsing" 2020-01-28 11:49:30 +00:00
Demangle
DWARFLinker [DWARF] Do not pass Version to DWARFExpression. NFCI. 2020-01-27 19:08:46 +07:00
ExecutionEngine [Alignment][NFC] Deprecate Align::None() 2020-01-24 12:53:58 +01:00
Frontend
Fuzzer
FuzzMutate
IR [instrinsics] Add @llvm.memcpy.inline instrinsics 2020-01-28 09:42:01 +01:00
IRReader
LineEditor
Linker
LTO Restore "[LTO/WPD] Enable aggressive WPD under LTO option" 2020-01-27 07:55:05 -08:00
MC [RISCV] Fix evaluating %pcrel_lo against global and weak symbols 2020-01-23 02:05:48 +00:00
MCA
Object [MIPS][ELF] Use PC-relative relocations in .eh_frame when possible 2020-01-13 14:14:03 +00:00
ObjectYAML [Hexagon] Add support for Hexagon v67t microarchitecture (tiny core) 2020-01-21 11:35:10 -06:00
Option
Passes [GVN] add GVN parameters parsing to new pass manager 2020-01-16 23:53:46 +03:00
ProfileData [NFC] Fix trivial typos in comments 2020-01-06 10:50:26 +00:00
Remarks
Support Re-land [Support] Extend TimeProfiler to support multiple threads 2020-01-27 13:01:49 +00:00
TableGen [TableGen] Introduce an if/then/else statement. 2020-01-14 10:19:53 +00:00
Target [PowerPC][Future] Add pld and pstd to future CPU 2020-01-28 08:23:29 -06:00
Testing
TextAPI [llvm][TextAPI/MachO] Support writing single macCatalyst platform 2020-01-27 10:21:06 -08:00
ToolDrivers
Transforms [Matrix] Mark expressions shared between multiple remarks. 2020-01-28 09:27:55 -08:00
WindowsManifest
XRay
CMakeLists.txt [Dsymutil][Debuginfo][NFC] Reland: Refactor dsymutil to separate DWARF optimizing part. #2. 2020-01-08 14:15:31 +03:00
LLVMBuild.txt [Dsymutil][Debuginfo][NFC] Reland: Refactor dsymutil to separate DWARF optimizing part. #2. 2020-01-08 14:15:31 +03:00