Uh oh!
There was an error while loading. Please reload this page.
Handle more than 64 registers - Part 2 - #102297
Conversation
kunalspathak
commented
May 17, 2024
@dotnet/jit-contrib @jakobbotsch |
kunalspathak
commented
May 17, 2024
I will double check the reason for arm regression. |
kunalspathak
commented
May 20, 2024
For some reason, I am not able to use the local pin tool to produce the individual method instruction count difference. I looked at vtune data for |
kunalspathak
commented
May 20, 2024
ping @dotnet/jit-contrib |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
jakobbotsch
left a comment
There was a problem hiding this comment.
LGTM, some minor clean up that we should do in the future.
kunalspathak
commented
May 21, 2024
/ba-g failure is related to #102479 |
@kunalspathak, osx-arm64 build is failing locally. If I revert this change, or checkout the previous commit 0709995, it works. Possible build regression. [ 96%] Building CXX object jit/CMakeFiles/clrjit_unix_x64_arm64.dir/simdashwintrinsic.cpp.o
Undefined symbols for architecture arm64:
"RegSet::rsAllCalleeSavedMask", referenced from:
RegSet::rsGetModifiedCalleeSavedRegsMask() const in codegencommon.cpp.o
"RegSet::rsIntCalleeSavedMask", referenced from:
RegSet::rsGetModifiedOsrIntCalleeSavedRegsMask() const in codegenxarch.cpp.o
RegSet::rsGetModifiedIntCalleeSavedRegsMask() const in codegenxarch.cpp.o
ld: symbol(s) not found for architecture arm64
[ 96%] Building CXX object jit/CMakeFiles/clrjit_universal_arm_arm64.dir/targetarm.cpp.o
[ 96%] Building CXX object jit/CMakeFiles/clrjit_unix_x64_arm64.dir/simdcodegenxarch.cpp.o
[ 96%] Building CXX object jit/CMakeFiles/clrjit.dir/codegenarm64test.cpp.o
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [jit/libclrjit_win_x64_arm64.dylib] Error 1
make[1]: *** [jit/CMakeFiles/clrjit_win_x64_arm64.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 96%] Building CXX object jit/CMakeFiles/clrjit_win_x86_arm64.dir/targetx86.cpp.o
[ 96%] Building CXX object jit/CMakeFiles/clrjit.dir/emitarm64.cpp.o
[ 96%] Building CXX object jit/CMakeFiles/clrjit_win_x86_arm64.dir/unwindx86.cpp.o
[ 96%] Building CXX object jit/CMakeFiles/clrjit_universal_arm_arm64.dir/unwindarmarch.cpp.o
[ 96%] Building CXX object jit/CMakeFiles/clrjit_universal_arm_arm64.dir/dllmain.cpp.o
[ 96%] Building CXX object jit/CMakeFiles/clrjit_win_x86_arm64.dir/hwintrinsicxarch.cpp.o
[ 96%] Building CXX object jit/CMakeFiles/clrjit.dir/emitarm64sve.cpp.o
[ 96%] Building CXX object jit/CMakeFiles/clrjit_unix_x64_arm64.dir/targetamd64.cpp.o
[ 96%] Building CXX object jit/CMakeFiles/clrjit_unix_x64_arm64.dir/unwindamd64.cpp.o
[ 97%] Building CXX object jit/CMakeFiles/clrjit_win_x86_arm64.dir/hwintrinsiccodegenxarch.cpp.o
[ 97%] Building CXX object jit/CMakeFiles/clrjit.dir/lowerarmarch.cpp.o
^[[C[ 97%] Linking CXX shared library libclrjit_universal_arm_arm64.dylib
[ 97%] Building CXX object jit/CMakeFiles/clrjit.dir/lsraarmarch.cpp.o
[ 97%] Building CXX object jit/CMakeFiles/clrjit_unix_x64_arm64.dir/hwintrinsicxarch.cpp.o
[ 97%] Building CXX object jit/CMakeFiles/clrjit_unix_x64_arm64.dir/hwintrinsiccodegenxarch.cpp.o
Undefined symbols for architecture arm64:
"RegSet::rsAllCalleeSavedMask", referenced from:
RegSet::rsGetModifiedCalleeSavedRegsMask() const in codegencommon.cpp.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [jit/libclrjit_universal_arm_arm64.dylib] Error 1
make[1]: *** [jit/CMakeFiles/clrjit_universal_arm_arm64.dir/all] Error 2
[ 97%] Building CXX object jit/CMakeFiles/clrjit_win_x86_arm64.dir/dllmain.cpp.o
[ 97%] Building CXX object jit/CMakeFiles/clrjit.dir/lsraarm64.cpp.o
[ 97%] Building CXX object jit/CMakeFiles/clrjit_unix_x64_arm64.dir/dllmain.cpp.o
[ 97%] Linking CXX shared library libclrjit_win_x86_arm64.dylib
[ 97%] Building CXX object jit/CMakeFiles/clrjit.dir/simd.cpp.o
[ 97%] Building CXX object jit/CMakeFiles/clrjit.dir/simdashwintrinsic.cpp.o
[ 97%] Building CXX object jit/CMakeFiles/clrjit.dir/targetarm64.cpp.o
Undefined symbols for architecture arm64:
"RegSet::rsAllCalleeSavedMask", referenced from:
RegSet::rsGetModifiedCalleeSavedRegsMask() const in codegencommon.cpp.o
"RegSet::rsIntCalleeSavedMask", referenced from:
RegSet::rsGetModifiedIntCalleeSavedRegsMask() const in codegenxarch.cpp.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [jit/libclrjit_win_x86_arm64.dylib] Error 1
make[1]: *** [jit/CMakeFiles/clrjit_win_x86_arm64.dir/all] Error 2
[ 97%] Building CXX object jit/CMakeFiles/clrjit.dir/unwindarmarch.cpp.o
[ 97%] Building CXX object jit/CMakeFiles/clrjit.dir/unwindarm64.cpp.o |
kunalspathak
commented
May 23, 2024
@am11 - What machine are you building this on? can you share the command you are using and possibly the clang version? |
am11
commented
May 23, 2024
$ uname -ms
Darwin arm64
$ clang --version | head -1
Apple clang version 15.0.0 (clang-1500.3.9.4) |
kunalspathak
commented
May 23, 2024
Thanks. I realized that this fails only if building |
* Make regMaskTP struct for non-arm64 platforms * some refactoring * jit format * fix missing paranethesis in arm * fix riscv64 and loongarch build * minor change * review feedback
* Make regMaskTP struct for non-arm64 platforms * some refactoring * jit format * fix missing paranethesis in arm * fix riscv64 and loongarch build * minor change * review feedback



In this PR, I have extended the support of
struct regMaskTPto non-arm64 platforms. The reason being that when I start adding code to convert 64-bits mask back and forth betweenregMaskTP, I will not have to add#ifdef TARGET_ARM64in LSRA code to handle thestruct regMaskTPvs.uint64_t regMaskTPseparately.