[PATCH] D47735: [DAGCombiner] Create rotates more aggressively

Roman Lebedev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 18 10:56:11 PDT 2018


lebedev.ri added a comment.

In https://reviews.llvm.org/D47735#1135475, @kparzysz wrote:

> This patch and the one you mentioned coincidentally both apply to rotates, but there wasn't any coordination between them.


What i guess i was asking, there is no overlap, they are working on a slightly different problems, although related to rotates.



================
Comment at: lib/CodeGen/SelectionDAG/DAGCombiner.cpp:4893
+  SmallVector<SDValue,8> OredOps;
+  std::queue<SDValue> WorkQ;
+  WorkQ.push(Op0);
----------------
kparzysz wrote:
> lebedev.ri wrote:
> > You can do
> > ```
> > std::queue<SDValue, SmallVector<SDValue, 8>> WorkQ;
> > ```
> > to get the usual small-size-optimization benefits.
> SmallVector doesn't have pop_front, so that won't work.
Right, i was thinking of `std::stack`, not `queue`, sorry.


================
Comment at: test/CodeGen/X86/rotate-multi.ll:1
+; RUN: llc -march=x86-64 < %s | FileCheck %s
+
----------------
X86(and most others) tests mostly use `utils/update_llc_test_checks.py`


Repository:
  rL LLVM

https://reviews.llvm.org/D47735





More information about the llvm-commits mailing list