-
Notifications
You must be signed in to change notification settings - Fork 2.6k
ARMARCH: no cascaded adds in addr mode #14914
Conversation
4285c89 to
aac5103
Compare
On ARM and ARM64, cascaded `ADD`s in the op2 position of the root ADD are not folded into a single addressing mode. However, in `gtSetEvalOrder` it assumes that they will, so it walks both operands of the addr looking for more `ADD`s. This leads to an assert because the leaf nodes it winds up with are not the same as those returned by `genCreateAddrMode()`. Fix #14665
|
@dotnet-bot test Windows_NT x86 Checked Innerloop Build and Test |
|
@dotnet-bot test Windows_NT arm64 Cross Debug Innerloop Build |
|
@dotnet/jit-contrib PTAL |
|
@jashook arm64 testing has 4 failures. Unfortunately, though, it's hard to know what has failed based on the current smarty output. Have you investigated? Do we have a recent regression? |
|
@jashook Also, it looks like the "Debug Innerloop Build" task is running tests (but is not named "Build and Test". I think you mentioned to me this would happen. Maybe the issue is we've never run tests with Debug builds before your arm64 CI change? Maybe some are simply timing out because of the Debug (versus Checked) build? |
BruceForstall
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks ok to me.
You should do desktop SPMI diffs to ensure no diffs on x64. You should do jit-diff to ensure no, or only expected, diffs in open. You should trigger various stress modes, also.
|
@dotnet-bot test Windows_NT jitstress1 |
|
No SPMI diffs on desktop. |
|
@dotnet-bot test Ubuntu jitstress1 |
|
@dotnet-bot test Windows_NT minopts |
|
All four x64 jitstress runs (ux/windows X jitstress1/jitstress2) fail on the same test, which also fails on x64/ux (presumably also on ubuntu but I didn't test that with master). |
|
:mips-interest |
…IPS64 Change-Id: I14cfc7ec4126a32292c18db2f96e0520392df8b0
* 12043: Refactor immediate load and compare. * 12808: Port dotnet#14914 ARMARCH: no cascaded adds in addr mode for MIPS64 * 12043: Add assert isVaildSimm16 for INS_lui * 10780: removed passed tests which need long time to run * 13454: Fix Assertion failed 'tempReg2 != saveOperReg2' * 12489: [MIPS64] resove double free exception For testcase bestfit-finalize.exe, the exception infomation is System.InvalidOperationException: Handle is not initialized. at System.Runtime.InteropServices.GCHandle.ThrowIfInvalid(IntPtr handle) at System.Runtime.InteropServices.GCHandle.Free() at GCHandle_test.Program.Finalize() * 13354: [MIPS64] PartC- Fixed error for running native-image generated by crossgen. * 13354: [MIPS64] PartD- Implements the struct VTableCallHolder and VTableCallStub. * 13354: [MIPS64] PartE - Implements the DynamicHelpers and some assembly function stubs. * 13457: MIPS not use fastTailCall when JIT has more than two slot structArg * 10780: removed passed tests in problem_list_sh.txt and problem_list.txt * 13416: Fix about the lvStkOffs for arguments * 12738: Implement GCCoverageInfo::SprinkleBreakpoints for MIPS64 * 13217: Use generic assert instead of inline asm break Co-authored-by: wangrui <[email protected]> Co-authored-by: Leslie Zhai <[email protected]> Co-authored-by: wanghaomin <[email protected]> Co-authored-by: Guoyun Sun <[email protected]> Co-authored-by: qiaopengcheng <[email protected]> Co-authored-by: jiangxinshang <[email protected]>
On ARM and ARM64, cascaded
ADDs in the op2 position are not folded into a single addressing mode. However, ingtSetEvalOrderit assumes that they will, so it walks both operands of the addr looking for moreADDs. This leads to an assert because the leaf nodes it winds up with are not the same as those returned bygenCreateAddrMode().Fix #14665