- User Since
- Mar 14 2017, 3:12 AM (119 w, 19 h)
Feb 22 2018
Refactored as suggested.
Feb 21 2018
Feb 15 2018
Maybe we should introduce some annotation to loops that are in simple form. Passes like SimplifyCFG may honor this annotation and don't remove empty preheaders. Removing and recreating empty preheaders seems wrong.
I enabled this opt for scalar values as sugested and have now additional 60 tests failing. The problem is, that for scalar values, this optimization does not only affect multiplication instructions but also address calculations. E.g., test/CodeGen/AArch64/machine-combiner-madd.ll fails because for the tested indexing in a load a madd instruction is expected but this optimization is not performed on the new generated instruction pattern which includes now a left shift and a subtraction.
Feb 14 2018
I don't see any use of empty preheaders. Can you explain for which cases empty preheaders are important?
Feb 2 2018
Jan 25 2018
@RKSimon sorry I hat a lot of work in the last months I hope to get back to this in the next two weeks
Nov 6 2017
I will reevaluate enabling the patch for scalar types. At a first look with current llvm trunk the regression seemed to be gone and was possible not related to this patch.
Oct 19 2017
removed the reference as suggested
Oct 1 2017
diff with context
Sep 29 2017
Updated the style issues
Sep 28 2017
please commit the patch, so we can go on with D37896
fixed wrong type in function names
Sorry somehow things messed up.
I submitted the (old) code generation for vector-mul.ll in https://reviews.llvm.org/D38350
Sep 25 2017
Updated version that transforms all proposed patterns for multiplications into shift patterns. Since the code got quite long it was moved to an own function in DAGCombiner. To avoid regressions with existing transformations, the patch currently only transforms multiplications of vector types.
To avoid problems with the Hexagon backend, the transformation is only performed iff the used vector type is a legal type for the backend.
Sep 15 2017
Hi Simon, I will update the patch as soon as it covers the new requirements and all tests pass.