[llvm] r190936 - Prevent LoopVectorizer and SLPVectorizer running if the target has no vector registers.

Tobias Grosser 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 mailing list