[llvm-commits] patch: partial DSE
Evan Cheng
evan.cheng at apple.com
Tue Nov 1 16:22:03 PDT 2011
This might be something we have to defer until we add "what's native types" to TargetData. I'm worried when / if this does something bad, the performance impact can be very significant.
Evan
On Nov 1, 2011, at 3:12 PM, Eli Friedman wrote:
> On Tue, Nov 1, 2011 at 2:47 PM, Eric Christopher <echristo at apple.com> wrote:
>>
>> On Oct 31, 2011, at 5:38 PM, Peter Cooper wrote:
>>
>>> Hi
>>>
>>> Please review this patch to allow DSE to trim stores as opposed to deleting them.
>>>
>>> The logic here is that if the end of the earlier store is dead because of a later store then the length of the earlier store will be trimmed in size to avoid writing dead memory. The only time i won't do this is if the original store was likely to use vector writes which if shortened would end up as multiple scalar writes and so is less efficient.
>>>
>>
>> Not a huge fan of this style:
>>
>> + (OR = isOverwrite(Loc, DepLoc, *AA,
>> + DepWriteOffset,
>> + InstWriteOffset)) != OverwriteUnknown &&
>>
>> in large conditionals. Things that return booleans, or set something for a block, e.g.:
>>
>> if (ConstantInt *CI = dyn_cast<ConstantInt>(Inst)) {
>> }
>>
>>> Any help removing the magic vector size (16) constant would be good too :)
>>
>> Something like this maybe?
>>
>> bool isLegalVector = false;
>> if (VectorType *VecTy = dyn_cast<VectorType>(Store->getType()) {
>> EVT VT = TLI.getValueType(VecTy);
>> isLegalVector = TLI.isTypeLegal(VT);
>> }
>>
>> does require target info though and I'm not sure how kosher that is in AA.
>
> There aren't actually any vector types involved here; the issue is
> that, for example, a 32 byte memset is cheaper than a 31-byte memset
> under the default settings on x86-64. I'm not sure what the right
> approach is here.
>
> -Eli
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list