[LLVMdev] [llvm] r184698 - Add a flag to defer vectorization into a phase after the inliner and its

Arnold Schwaighofer aschwaighofer at apple.com
Mon Jun 24 12:46:10 PDT 2013


On Jun 24, 2013, at 2:32 PM, Hal Finkel <hfinkel at anl.gov> wrote:

> I assume that we're taking about nsw, etc. The fact that SCEV assumes nsw in some cases has led to problems (PR16130 has some history on this), and I don't understand why SCEV's unique-ifying/commoning expressions implies that it needs to drop the flags.

Yes I am talking about the ability to maintain nsw/nuw on general expressions between LLVM IR and the SCEV IR and back.

If I recall Andy’s explanation correctly, it is at least an issue if you have the same expression once with a wrapping flag (because it is guarded) and once without. Maybe also issues when we simplify expressions in that it is hard to maintain them?

What holds true is that if you go

  LLVM IR -> SCEV -> SCEV expander -> LLVM IR 

is that you will loose wrapping flags. And IndVars does just that :(.



More information about the llvm-dev mailing list