HomePhabricator

[GlobalISel] Add a combine for sext_inreg(load x), c --> sextload x

Authored by aemerson on Aug 14 2020, 2:00 AM.

Description

[GlobalISel] Add a combine for sext_inreg(load x), c --> sextload x

This is restricted to single use loads, which if we fold to sextloads we can
find more optimal addressing modes on AArch64.

This also fixes an overload the MachineFunction::getMachineMemOperand() method
which was incorrectly using the MF alignment instead of the MMO alignment.

Differential Revision: https://reviews.llvm.org/D85966

Event Timeline

This commit is causing build failures in my downstream ARM repository, as well as at least one buildbot (http://lab.llvm.org:8011/builders/clang-cmake-x86_64-avx2-linux)

The errors seem to stem from the std::tuple implementation. Could it be that the buildbot and my downstream are using older, unsupported library implementations?

This commit is causing build failures in my downstream ARM repository, as well as at least one buildbot (http://lab.llvm.org:8011/builders/clang-cmake-x86_64-avx2-linux)

The errors seem to stem from the std::tuple implementation. Could it be that the buildbot and my downstream are using older, unsupported library implementations?

Could be, but I'm not certain. In any case, I've just changed them to use std::make_tuple now instead in ed353445248.

This commit is causing build failures in my downstream ARM repository, as well as at least one buildbot (http://lab.llvm.org:8011/builders/clang-cmake-x86_64-avx2-linux)

The errors seem to stem from the std::tuple implementation. Could it be that the buildbot and my downstream are using older, unsupported library implementations?

Could be, but I'm not certain. In any case, I've just changed them to use std::make_tuple now instead in ed353445248.

Thanks!