[llvm] [GlobalISel] Allow expansion of srem by constant in prelegalizer (PR #148845)

via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 17 07:12:38 PDT 2025


jyli0116 wrote:

> Build bots are unhappy: https://lab.llvm.org/buildbot/#/builders/207/builds/4106
> 
> ```
> 18.856 [117/10/47] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/GISel/AArch64PreLegalizerCombiner.cpp.obj
> FAILED: lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/GISel/AArch64PreLegalizerCombiner.cpp.obj
> C:\Users\tcwg\scoop\shims\ccache.exe C:\Users\tcwg\scoop\apps\llvm-arm64\current\bin\clang-cl.exe  /nologo -TP -DEXPERIMENTAL_KEY_INSTRUCTIONS -DGTEST_HAS_RTTI=0 -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_GLIBCXX_ASSERTIONS -D_HAS_EXCEPTIONS=0 -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -IC:/Users/tcwg/llvm-worker/flang-arm64-windows-msvc/build/lib/Target/AArch64 -IC:/Users/tcwg/llvm-worker/flang-arm64-windows-msvc/llvm-project/llvm/lib/Target/AArch64 -IC:/Users/tcwg/llvm-worker/flang-arm64-windows-msvc/build/include -IC:/Users/tcwg/llvm-worker/flang-arm64-windows-msvc/llvm-project/llvm/include /DWIN32 /D_WINDOWS   /Zc:inline /Zc:__cplusplus /Oi /Brepro /bigobj /permissive- -Werror=unguarded-availability-new /W4  -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrou
>  gh -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported /Gw /O2 /Ob2  -std:c++17 -MD  /EHs-c- /GR- -UNDEBUG /showIncludes /Folib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/GISel/AArch64PreLegalizerCombiner.cpp.obj /Fdlib\Target\AArch64\CMakeFiles\LLVMAArch64CodeGen.dir\LLVMAArch64CodeGen.pdb -c -- C:/Users/tcwg/llvm-worker/flang-arm64-windows-msvc/llvm-project/llvm/lib/Target/AArch64/GISel/AArch64PreLegalizerCombiner.cpp
> In file included from C:/Users/tcwg/llvm-worker/flang-arm64-windows-msvc/llvm-project/llvm/lib/Target/AArch64/GISel/AArch64PreLegalizerCombiner.cpp:749:
> C:/Users/tcwg/llvm-worker/flang-arm64-windows-msvc/build/lib/Target/AArch64\AArch64GenPreLegalizeGICombiner.inc(3273,29): error: no member named 'matchUDivorURemByConst' in 'llvm::CombinerHelper'; did you mean 'matchUDivOrURemByConst'?
>  3273 |     if(![&](){return Helper.matchUDivorURemByConst(*State.MIs[0]);}()) {
>       |                             ^~~~~~~~~~~~~~~~~~~~~~
>       |                             matchUDivOrURemByConst
> C:/Users/tcwg/llvm-worker/flang-arm64-windows-msvc/llvm-project/llvm/include\llvm/CodeGen/GlobalISel/CombinerHelper.h(705,8): note: 'matchUDivOrURemByConst' declared here
>   705 |   bool matchUDivOrURemByConst(MachineInstr &MI) const;
>       |        ^
> In file included from C:/Users/tcwg/llvm-worker/flang-arm64-windows-msvc/llvm-project/llvm/lib/Target/AArch64/GISel/AArch64PreLegalizerCombiner.cpp:749:
> C:/Users/tcwg/llvm-worker/flang-arm64-windows-msvc/build/lib/Target/AArch64\AArch64GenPreLegalizeGICombiner.inc(3277,12): error: no member named 'applyUDivorURemByConst' in 'llvm::CombinerHelper'; did you mean 'applyUDivOrURemByConst'?
>  3277 |     Helper.applyUDivorURemByConst(*State.MIs[0]);
>       |            ^~~~~~~~~~~~~~~~~~~~~~
>       |            applyUDivOrURemByConst
> C:/Users/tcwg/llvm-worker/flang-arm64-windows-msvc/llvm-project/llvm/include\llvm/CodeGen/GlobalISel/CombinerHelper.h(706,8): note: 'applyUDivOrURemByConst' declared here
>   706 |   void applyUDivOrURemByConst(MachineInstr &MI) const;
>       |        ^
> In file included from C:/Users/tcwg/llvm-worker/flang-arm64-windows-msvc/llvm-project/llvm/lib/Target/AArch64/GISel/AArch64PreLegalizerCombiner.cpp:749:
> C:/Users/tcwg/llvm-worker/flang-arm64-windows-msvc/build/lib/Target/AArch64\AArch64GenPreLegalizeGICombiner.inc(3300,29): error: no member named 'matchSDivByConst' in 'llvm::CombinerHelper'
>  3300 |     if(![&](){return Helper.matchSDivByConst(*State.MIs[0]);}()) {
>       |                      ~~~~~~ ^
> C:/Users/tcwg/llvm-worker/flang-arm64-windows-msvc/build/lib/Target/AArch64\AArch64GenPreLegalizeGICombiner.inc(3304,12): error: no member named 'applySDivByConst' in 'llvm::CombinerHelper'; did you mean 'applySDivByPow2'?
>  3304 |     Helper.applySDivByConst(*State.MIs[0]);
>       |            ^~~~~~~~~~~~~~~~
>       |            applySDivByPow2
> C:/Users/tcwg/llvm-worker/flang-arm64-windows-msvc/llvm-project/llvm/include\llvm/CodeGen/GlobalISel/CombinerHelper.h(720,8): note: 'applySDivByPow2' declared here
>   720 |   void applySDivByPow2(MachineInstr &MI) const;
>       |        ^
> 4 errors generated.
> ```

Hiya @melver , thanks for bringing this up - AFAIK, it's a thing where sometimes the .inc files don't regenerate after tablegen files are edited. It's come up before, where it fixes itself a few hours after the merge :( but I'll keep an eye on the buildbots in case I need to revert.

https://github.com/llvm/llvm-project/pull/148845


More information about the llvm-commits mailing list