llvm-project/llvm/lib
Bardia Mahjour 0a2626d0cd [DDG] Data Dependence Graph - Graph Simplification
Summary:
This is the last functional patch affecting the representation of DDG.
Here we try to simplify the DDG to reduce the number of nodes and edges by
iteratively merging pairs of nodes that satisfy the following conditions,
until no such pair can be identified. A pair of nodes consisting of a and b
can be merged if:

    1. the only edge from a is a def-use edge to b and
    2. the only edge to b is a def-use edge from a and
    3. there is no cyclic edge from b to a and
    4. all instructions in a and b belong to the same basic block and
    5. both a and b are simple (single or multi instruction) nodes.

These criteria allow us to fold many uninteresting def-use edges that
commonly exist in the graph while avoiding the risk of introducing
dependencies that didn't exist before.

Authored By: bmahjour

Reviewer: Meinersbur, fhahn, myhsu, xtian, dmgreen, kbarton, jdoerfert

Reviewed By: Meinersbur

Subscribers: ychen, arphaman, simoll, a.elovikov, mgorny, hiraditya, jfb, wuzish, llvm-commits, jsji, Whitney, etiotto, ppc-slack

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D72350
2020-02-19 13:41:51 -05:00
..
Analysis [DDG] Data Dependence Graph - Graph Simplification 2020-02-19 13:41:51 -05:00
AsmParser [Assembler] Emit summary index flags 2020-02-18 17:49:54 +03:00
BinaryFormat DWARFDebugLine.cpp: Format unknown line number standard opcodes 2020-01-15 10:45:50 -05:00
Bitcode [NFC] Silence compiler warning [-Wmissing-braces]. 2020-02-18 10:37:12 -08:00
Bitstream Revert "Remove redundant "std::move"s in return statements" 2020-02-10 07:07:40 -08:00
CodeGen Revert "[PatternMatch] Match XOR variant of unsigned-add overflow check." 2020-02-19 19:37:08 +01:00
DWARFLinker [Debuginfo][NFC] Create common error handlers for DWARFContext. 2020-02-15 12:46:17 +03:00
DebugInfo [NFCI][DebugInfo]: Corrected a Typo. 2020-02-17 14:50:32 +05:30
Demangle Use std::foo_t rather than std::foo in LLVM. 2020-02-11 15:12:51 -08:00
ExecutionEngine [Support] On Windows, ensure hardware_concurrency() extends to all CPU sockets and all NUMA groups 2020-02-14 10:24:22 -05:00
Frontend [NFC] Revert unnecessary parts of b91c267380 2020-02-15 01:38:58 -06:00
FuzzMutate Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
Fuzzer
IR Revert "[IRBuilder] Always respect inserter/folder" 2020-02-19 17:51:55 +01:00
IRReader
LTO Improve comments after 8404aeb56a. 2020-02-18 14:25:21 -05:00
LineEditor Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
Linker IR Linking: Support merging Warning+Max module metadata flags 2020-02-07 16:29:58 -08:00
MC [Hexagon][NFC] Rename VK_Hexagon_PCREL to VK_PCREL 2020-02-19 09:52:58 -06:00
MCA Revert "Remove redundant "std::move"s in return statements" 2020-02-10 07:07:40 -08:00
Object Prevent gcc from issuing a warning upon coffnamecpy 2020-02-18 16:13:59 +01:00
ObjectYAML [yaml2obj] - Change the order of implicitly created sections. 2020-02-19 15:09:19 +03:00
Option Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
Passes [Coroutines][5/6] Add coroutine passes to pipeline 2020-02-19 00:57:14 -05:00
ProfileData Revert "Remove redundant "std::move"s in return statements" 2020-02-10 07:07:40 -08:00
Remarks Revert "Remove redundant "std::move"s in return statements" 2020-02-10 07:07:40 -08:00
Support [AArch64] Add Cortex-A34 Support for clang and llvm 2020-02-18 14:56:16 +00:00
TableGen Fix assertion on `!eq(?, 0)` 2020-02-18 14:05:55 -08:00
Target [X86] Add DCI.isBeforeLegalize() check to the v64i1 constant splitting code in combineStore. 2020-02-19 09:18:16 -08:00
Testing
TextAPI [llvm][TextAPI] add simulators to output 2020-02-11 10:37:37 -08:00
ToolDrivers [llvm] Replace SmallStr.str().str() with std::string conversion operator. 2020-01-29 21:16:46 -08:00
Transforms Revert "[PatternMatch] Match XOR variant of unsigned-add overflow check." 2020-02-19 19:37:08 +01:00
WindowsManifest
XRay Use std::foo_t rather than std::foo in LLVM. 2020-02-11 15:12:51 -08:00
CMakeLists.txt [Dsymutil][Debuginfo][NFC] Reland: Refactor dsymutil to separate DWARF optimizing part. . 2020-01-08 14:15:31 +03:00
LLVMBuild.txt [Dsymutil][Debuginfo][NFC] Reland: Refactor dsymutil to separate DWARF optimizing part. . 2020-01-08 14:15:31 +03:00