This is an archive of the discontinued LLVM Phabricator instance.

[Utils][x86] add an option to reduce scrubbing of shuffles with memops
ClosedPublic

Authored by spatel on Feb 18 2020, 9:03 AM.

Details

Summary

I was drafting a patch that would increase broadcast load usage, but our shuffle scrubbing makes it impossible to see if the memory operand offset was getting created correctly. I'm proposing to make that an option (defaulted to 'off' for now to reduce regression test churn).

The updated files provide examples of tests where we can now verify that the pointer offset for a loaded memory operand is correct. We still have stack and constant scrubbing that can obscure the operand even if we don't scrub the entire instruction.

Diff Detail

Event Timeline

spatel created this revision.Feb 18 2020, 9:03 AM
Herald added a project: Restricted Project. · View Herald TranscriptFeb 18 2020, 9:03 AM

I think we we discussed recently about always exposing stack math - I don't care about seeing constant labels but tbh I think we probably need to see all register based pointer math on x86 (maybe with some way to merge X86/X64 registers?).

llvm/test/CodeGen/X86/extractelement-load.ll
233

this is a constant - ideally we'd hide the LCPI and the comment would be the actual constant value

I think we we discussed recently about always exposing stack math - I don't care about seeing constant labels but tbh I think we probably need to see all register based pointer math on x86 (maybe with some way to merge X86/X64 registers?).

Not sure how to proceed. Is this patch ok as a step towards the goal, or we need to go further? Do we want to make the diffs shown here standard (no command-line option or switch the default)? Or we need to scrub differently to be acceptable?

RKSimon accepted this revision.Feb 19 2020, 10:52 AM

LGTM as a first step

This revision is now accepted and ready to land.Feb 19 2020, 10:52 AM
This revision was automatically updated to reflect the committed changes.