This is an archive of the discontinued LLVM Phabricator instance.

[X86] Fix an 8 bit testb being selected when folding a volatile i32 load pattern.
ClosedPublic

Authored by aemerson on Dec 16 2019, 4:28 PM.

Details

Summary

We're not allowed to narrow volatile memory accesses.

Diff Detail

Event Timeline

aemerson created this revision.Dec 16 2019, 4:28 PM
Herald added a project: Restricted Project. · View Herald TranscriptDec 16 2019, 4:28 PM
Herald added a subscriber: hiraditya. · View Herald Transcript
craig.topper added inline comments.
llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
5150

@reames should this be !LoadN->isSimple()?

reames added inline comments.Dec 17 2019, 5:42 PM
llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
5150

Yes.

Though, the approach taken with that hit a snag. I'm probably going to end up reverting a bunch of changes in that whole sequence as I didn't get legalization quite right and have to revisit the design. It's off in TOT.

aemerson marked an inline comment as done.Dec 23 2019, 9:50 PM
aemerson added inline comments.
llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
5150

I think I'm missing some context here. what patches are you referring to?

aemerson updated this revision to Diff 236426.Jan 6 2020, 11:21 AM

Update patch to use !isSimple() instead of isVolatile().

This revision is now accepted and ready to land.Jan 6 2020, 11:26 AM
This revision was automatically updated to reflect the committed changes.