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

Use correct field offset in genPutArgStkFieldList#18483

Merged
jkotas merged 3 commits into
dotnet:masterfrom
CarolEidt:Fix18482
Jun 15, 2018
Merged

Use correct field offset in genPutArgStkFieldList#18483
jkotas merged 3 commits into
dotnet:masterfrom
CarolEidt:Fix18482

Conversation

@CarolEidt
Copy link
Copy Markdown

Fix #18482

@@ -0,0 +1,37 @@
using System;
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: License header

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed. thanks.

Comment thread src/jit/codegenlinear.cpp Outdated
getEmitter()->emitIns_S_R(ins_Store(type), attr, reg, outArgVarNum, argOffset);
argOffset += EA_SIZE_IN_BYTES(attr);
// argument area.
unsigned thisArgOffset = argOffset + fieldListPtr->gtFieldOffset;
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not exactly familiar with this code but I'm pretty sure that here "this" does not refer to the this argument. Perhaps argFieldOffset would be a better name? argOffset is the offset of the an argument composed from multiple fields and argFieldOffset is the offset of an individual field.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did this fix get pushed? Github says the local is still named thisFieldOffset?

I like argFieldOffset here better too.

@CarolEidt
Copy link
Copy Markdown
Author

@dotnet/jit-contrib PTAL

@jkotas
Copy link
Copy Markdown
Member

jkotas commented Jun 15, 2018

@dotnet-bot test Ubuntu x64 Checked corefx_baseline

@AndyAyersMS
Copy link
Copy Markdown
Member

I'm really puzzled why this wasn't caught in our normal CoreCLR CI....

@CarolEidt
Copy link
Copy Markdown
Author

I'm really puzzled why this wasn't caught in our normal CoreCLR CI....

Me too - I would think that this would be a pretty fundamental kind of test to have around.

@AndyAyersMS
Copy link
Copy Markdown
Member

Maybe you could try an altjit pmi run (using linuxnonjit.dll) over the pri 0 CI tests with your fix to see if there are any diffs outside of the test you added?

I haven't tried altjit pmi yet so you might hit some snags. If so, I'd be happy to jump in and fix them.

@jkotas
Copy link
Copy Markdown
Member

jkotas commented Jun 15, 2018

@dotnet-bot test Ubuntu x64 Checked corefx_baseline

@jashook
Copy link
Copy Markdown

jashook commented Jun 15, 2018

@dotnet-bot test OSX10.12 x64 Checked Innerloop Build and Test

OSX machine broke the connection.

@jashook
Copy link
Copy Markdown

jashook commented Jun 15, 2018

Seems like this test case should have been covered with tests/src/JIT/Directed/StructABI/StructABI.cs.

@CarolEidt, if we are adding a new test it is worth adding it to the Arm64 and Arm32 lst file. This can be done in a later pr.

Copy link
Copy Markdown

@jashook jashook left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minus the comment on the lst file, lgtm.

@CarolEidt
Copy link
Copy Markdown
Author

Seems like this test case should have been covered with tests/src/JIT/Directed/StructABI/StructABI.cs.

It's not run on linux: https://github.com/dotnet/coreclr/blob/master/tests/testsFailingOutsideWindows.txt#L4
I believe it's because the native side hasn't been ported.

@jashook
Copy link
Copy Markdown

jashook commented Jun 15, 2018

That is a problem, that test has previously been passing on unix. It should be re-enabled asap, it is one of our best tests for these ABI issues.

@CarolEidt
Copy link
Copy Markdown
Author

if we are adding a new test it is worth adding it to the Arm64 and Arm32 lst file.

OK, I think I'm going to let the rest of the tests finish, especially the corefx tests, since they've finally begun (CI seems a bit slow this morning)

@jashook
Copy link
Copy Markdown

jashook commented Jun 15, 2018

Wow looks like we have not been running the abi test for a while, that is extremely surprising. That is very unfortunate.

@CarolEidt
Copy link
Copy Markdown
Author

It seems that it was "temporarily" disabled over two and a half years ago here: 4ddcf19#diff-189e5cf450f28bd675ab3c19f246c9a6

But it doesn't seem that any issue was filed to track re-enabling it.

@jashook
Copy link
Copy Markdown

jashook commented Jun 15, 2018

Looking into this now. I will try to re-enable the test, hopefully it has not regressed.

@CarolEidt
Copy link
Copy Markdown
Author

I filed #18485

@CarolEidt
Copy link
Copy Markdown
Author

As far as I can tell there was a process error in https://ci.dot.net/job/dotnet_coreclr/job/master/job/jitstress/job/x64_checked_ubuntu_corefx_baseline_flow_prtest/31/
I'm going to push the .lst file changes, and retest corefx.

@CarolEidt
Copy link
Copy Markdown
Author

@dotnet-bot test Ubuntu x64 Checked corefx_baseline

@CarolEidt
Copy link
Copy Markdown
Author

@jashook could you take a look at the .lst file changes to make sure I've got it right?

Copy link
Copy Markdown

@jashook jashook left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm thank you!

@CarolEidt
Copy link
Copy Markdown
Author

@dotnet-bot test OSX10.12 x64 Checked Innerloop Build and Test
@dotnet-bot test Windows_NT arm Cross Checked Innerloop Build and Test
@dotnet-bot test Windows_NT arm64 Cross Checked Innerloop Build and Test
@dotnet-bot test Windows_NT x64 Checked Innerloop Build and Test

@CarolEidt
Copy link
Copy Markdown
Author

@dotnet/dnceng - The corefx test failure seems to be process-related. Is this a known problem?

@CarolEidt
Copy link
Copy Markdown
Author

The Windows_NT x64 Checked Innerloop Build and Test is presumably https://github.com/dotnet/coreclr/issues/18467, but will retry.

@CarolEidt
Copy link
Copy Markdown
Author

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

@jkotas jkotas merged commit 13954f2 into dotnet:master Jun 15, 2018
@MattGal
Copy link
Copy Markdown
Member

MattGal commented Jun 15, 2018

@CarolEidt I believe @chcosta was looking at this, and from the very low build number the conclusion was that this job had never actually worked. Chris can add context if he found any (should probably disable this leg)

@CarolEidt
Copy link
Copy Markdown
Author

@dotnet/jit-contrib - is there a different job I should request for corefx tests? Or are this simply not working?

@MattGal
Copy link
Copy Markdown
Member

MattGal commented Jun 15, 2018

It's simply not working; I would just ignore it for now, as it's not providing you any "Should I check in?" value, and there are issues tracking fixing it.

@BruceForstall
Copy link
Copy Markdown

Looks like there's a netci.groovy configuration problem. (I probably introduced it with some of my refactoring work.) I opened an issue with details here: https://github.com/dotnet/coreclr/issues/18498.

@CarolEidt CarolEidt deleted the Fix18482 branch August 31, 2018 17:49
picenka21 pushed a commit to picenka21/runtime that referenced this pull request Feb 18, 2022
* Use correct field offset in genPutArgStkFieldList

Fix dotnet/coreclr#18482

* formatting

* Add the new test to the arm and arm64 test lists


Commit migrated from dotnet/coreclr@13954f2
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.

7 participants