Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

Conversation

@CarolEidt
Copy link

@CarolEidt CarolEidt commented Nov 8, 2017

On ARM and ARM64, cascaded ADDs in the op2 position 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 ADDs. This leads to an assert because the leaf nodes it winds up with are not the same as those returned by genCreateAddrMode().

Fix #14665

@CarolEidt CarolEidt force-pushed the Fix14665 branch 3 times, most recently from 4285c89 to aac5103 Compare November 10, 2017 22:06
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
@CarolEidt
Copy link
Author

@dotnet-bot test Windows_NT x86 Checked Innerloop Build and Test

@CarolEidt
Copy link
Author

@dotnet-bot test Windows_NT arm64 Cross Debug Innerloop Build

@CarolEidt
Copy link
Author

@dotnet/jit-contrib PTAL

@BruceForstall
Copy link

@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?

@BruceForstall
Copy link

@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?

Copy link

@BruceForstall BruceForstall left a 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.

@CarolEidt
Copy link
Author

@dotnet-bot test Windows_NT jitstress1
@dotnet-bot test Windows_NT jitstress2
@dotnet-bot test Ubuntu jitstress1
@dotnet-bot test Ubuntu jitstress2
@dotnet-bot test Windows_NT minopts
@dotnet-bot test Windows_NT Checked r2r_jitforcerelocs
@dotnet-bot test Windows_NT x86 corefx_baseline
@dotnet-bot test Windows_NT x86 Checked jitstress2

@CarolEidt
Copy link
Author

No SPMI diffs on desktop.
No diffs with jit-diff x86 and x64 windows.
Stress testing is still running, starting to look at failures.

@CarolEidt
Copy link
Author

@dotnet-bot test Ubuntu jitstress1
@dotnet-bot test Ubuntu jitstress2
@dotnet-bot test Windows_NT x86 corefx_baseline

@CarolEidt
Copy link
Author

@dotnet-bot test Windows_NT minopts
@dotnet-bot test Windows_NT x86 corefx_baseline

@CarolEidt
Copy link
Author

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).
Filed #15027
arm64 failures are known (now disabled)

@CarolEidt CarolEidt merged commit a9b3c52 into dotnet:master Nov 14, 2017
@CarolEidt CarolEidt deleted the Fix14665 branch November 14, 2017 21:59
@xiangzhai
Copy link

:mips-interest

theaoqi pushed a commit to theaoqi/coreclr that referenced this pull request Jun 30, 2020
…IPS64

Change-Id: I14cfc7ec4126a32292c18db2f96e0520392df8b0
theaoqi added a commit to gsvm/coreclr that referenced this pull request Jun 30, 2020
* 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]>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants