[PATCH] D54899: [LoopStrengthReduce] ComplexityLimit as an option

Sam Parker via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 29 03:52:40 PST 2018


samparker added a comment.

@qcolombet maybe you could suggest the areas in LSR which will enable to help produce these post inc loads? What we have with the default complexity is:

  loop:
  %index = phi i32
  load %base, index
  load %base, index + 1
  load %base, index + 2
  load %base, index + 3

Increasing the complexity replaces the i32 phi with pointers, and the entry value is base-2. What I would like to see is base-1 on entry, then:

  %base = %base.orig - 1
  loop:
  %base.iv = [ %base, %base.iv.next ]
  load %base.iv, 1
  load %base.iv, 2
  load %base.iv, 3
  load %base1.iv, 4
  base.iv.next = gep base.iv, 4

With this form, the first three loads can be base + immediate offset, while the last can perform the post increment to create %base.iv.next. What do you think?


Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D54899/new/

https://reviews.llvm.org/D54899





More information about the llvm-commits mailing list