This is an archive of the discontinued LLVM Phabricator instance.

[WebAssembly] Disable folding of GA+reg into load/store constant offsets
ClosedPublic

Authored by dschuff on Aug 30 2016, 1:29 PM.

Details

Summary

If the register has a negative value then unsigned overflow will occur;
this case is sometimes even created intentionally by LSR. For now
disable GA+reg folding. Fixes PR29127

Diff Detail

Repository
rL LLVM

Event Timeline

dschuff updated this revision to Diff 69746.Aug 30 2016, 1:29 PM
dschuff retitled this revision from to [WebAssembly] Disable folding of GA+reg into load/store constant offsets.
dschuff updated this object.
dschuff added a reviewer: sunfish.
dschuff added a subscriber: llvm-commits.
mgrang added a subscriber: mgrang.Aug 30 2016, 2:10 PM
mgrang added inline comments.
test/CodeGen/WebAssembly/address-offsets.ll
39 ↗(On Diff #69746)

This seems to be a typo. Should be NEXT instead of NEX T.

dschuff added inline comments.Aug 30 2016, 4:06 PM
test/CodeGen/WebAssembly/address-offsets.ll
39 ↗(On Diff #69746)

@sunfish not sure how you feel about this method of disabling tests. The other option would be just to delete them and use revision control for its purpose :)

39 ↗(On Diff #69746)

It's actually kind of a hacky way of disabling tests without actually deleting them. The drawback is, yeah it kind of looks like a typo.

This revision was automatically updated to reflect the committed changes.

@sunfish went ahead and landed this since we discussed it and I wanted to consolidate the torture test results, so I can update Binaryen's checked-in version (so we can test the stack branch).