This is an archive of the discontinued LLVM Phabricator instance.

TTI: Allow targets to override getScalarizationOverhead
AbandonedPublic

Authored by arsenm on Dec 15 2015, 5:49 PM.

Details

Summary

AMDGPU wants to mostly pretend that vectors don't exist and
there's no cost to scalarizing vectors.

Diff Detail

Event Timeline

arsenm updated this revision to Diff 42950.Dec 15 2015, 5:49 PM
arsenm retitled this revision from to TTI: Allow targets to override getScalarizationOverhead.
arsenm updated this object.
arsenm added a subscriber: llvm-commits.
hfinkel edited edge metadata.Mar 14 2016, 4:08 PM

If the vectors don't exist, shouldn't the insert/extract costs be zero?

If the vectors don't exist, shouldn't the insert/extract costs be zero?

The extract cost is zero. I'm not sure a vector insert should be considered as 0, because the only time this would really happen in the ISA is if packing a vector for a store

If the vectors don't exist, shouldn't the insert/extract costs be zero?

The extract cost is zero. I'm not sure a vector insert should be considered as 0, because the only time this would really happen in the ISA is if packing a vector for a store

I don't understand what this means. What are you packing into? Is this packing in any way associated with the vector insertion IR instruction? But if you don't actually have vectors, then why is this cost not just part of the store cost?

arsenm abandoned this revision.Mar 23 2016, 11:22 AM

If the vectors don't exist, shouldn't the insert/extract costs be zero?

The extract cost is zero. I'm not sure a vector insert should be considered as 0, because the only time this would really happen in the ISA is if packing a vector for a store

I don't understand what this means. What are you packing into? Is this packing in any way associated with the vector insertion IR instruction? But if you don't actually have vectors, then why is this cost not just part of the store cost?

That would make more sense. I'll go with the other plan of making insertelement free