[llvm] r190936 - Prevent LoopVectorizer and SLPVectorizer running if the target has no vector registers.
tobias at grosser.es
Wed Sep 18 07:33:46 PDT 2013
On 09/18/2013 04:24 PM, Robert Lytton wrote:
> Hi Tobias,
> I was unaware of the discussion but have now reviewed the thread r189281.
> As the xcore architecture does not support Out-of-Order execution (nor vectorization), any such loop unrolling is potentially (usually) harmful.
> For us, loop-unroll heuristics need to be balanced against code size (we currently use a #pragma to explicitly control it).
> Are there targets with no vector registers, where OoO is supported and as such a partial unroll would be beneficial?
Newer CUDA/PTX hardware possibly?
> Do we need an new flag to control this feature independently?
I don't have an opinion here, as I neither really have deep knowledge
about the relevant hardware nor about the performance implications of
partial unrolling on them. I just brought this to your attention to make
sure you understand the impact of your patch.
More information about the llvm-commits