This change is part of https://reviews.llvm.org/D28907.
This is a new functionality that allows to propagate IR flags only for specific operation OpValue parameter.
Differential D35292
[SLPVectorizer] Add propagateIRFlagsWithOp() function to propagate IRFlags for specific Operation dtemirbulatov on Jul 11 2017, 10:50 PM. Authored by
Details This change is part of https://reviews.llvm.org/D28907. This is a new functionality that allows to propagate IR flags only for specific operation OpValue parameter.
Diff Detail Event TimelineComment Actions A few minor comments
Comment Actions I haven't reviewed the usages of propagateIRFlagsWithOp, but this really needs test cases. Please add them.
Comment Actions I don't get what you want to do here, sorry. Please tell me if I misunderstood something. I'm not the most familiar with the SLP vectorizer.
Comment Actions
propagateIRFlagsWithOp only collects flags from Y if Y.Code == Z.Code while propagateIRFlags copies any flag from Y. Comment Actions
Usually it should have flags in common and it collects those flags see "Intersection->andIRFlags(V);" in the loop across all VL, Comment Actions Resulting in to:
Comment Actions Fixed issue with test/Transforms/SLPVectorizer/X86/horizontal-list.ll, Merged two versions of propagateIRFlags into one. |
Maybe "If OpValue is non-null, we only consider operations similar to OpValue when intersecting"?