[llvm-dev] LSR (original) (raw)

Jonas Paulsson via llvm-dev llvm-dev at lists.llvm.org
Mon Apr 10 06:47:07 PDT 2017


Hi,

I find that LSR is not helping enough on avoiding unfoldable offsets for SystemZ. When the loop has three stores with unfoldable offsets, LSR rewrites the IV in a good way. However, if adding another store with a foldable offset that fits already, LSR fails to rewrite the three stores.

And if I happen to add a too big positive offset (the first three were negative) instead of a foldable one, only the positive gets transformed.

Has anyone any idea on how to best handle this? Can LSR "split" an IV to use an extra register? Or would this need to be done in a target specific pass?

For a reduced test case for this problem, see https://bugs.llvm.org//show_bug.cgi?id=32548.

Thanks,

Jonas



More information about the llvm-dev mailing list