From a38c049fc5c7db8e48c5f57122f62a8d62ea467b Mon Sep 17 00:00:00 2001 From: Nirav Dave Date: Wed, 10 May 2017 19:53:41 +0000 Subject: [SDAG] Relax conditions under stores of loaded values can be merged Summary: Allow consecutive stores whose values come from consecutive loads to merged in the presense of other uses of the loads. Previously this was disallowed as in general the merged load cannot be shared with the other uses. Merging N stores into 1 may cause as many as N redundant loads. However in the context of caching this should have neglible affect on memory pressure and reduce instruction count making it almost always a win. Fixes PR32086. Reviewers: spatel, jyknight, andreadb, hfinkel, efriedma Reviewed By: efriedma Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D30471 llvm-svn: 302712 --- llvm/include/llvm/CodeGen/ISDOpcodes.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'llvm/include') diff --git a/llvm/include/llvm/CodeGen/ISDOpcodes.h b/llvm/include/llvm/CodeGen/ISDOpcodes.h index f2a9a9f73ca..e00668cb791 100644 --- a/llvm/include/llvm/CodeGen/ISDOpcodes.h +++ b/llvm/include/llvm/CodeGen/ISDOpcodes.h @@ -44,6 +44,10 @@ namespace ISD { /// EntryToken - This is the marker used to indicate the start of a region. EntryToken, + /// DummyNode - Temporary node for node replacement. These nodes + /// should not persist beyond their introduction. + DummyNode, + /// TokenFactor - This node takes multiple tokens as input and produces a /// single token result. This is used to represent the fact that the operand /// operators are independent of each other. -- cgit v1.2.3