Skip to content

Turn off reloc generation for handles#60721

Merged
jakobbotsch merged 1 commit intodotnet:mainfrom
jakobbotsch:no-reloc-generation-for-handles
Oct 22, 2021
Merged

Turn off reloc generation for handles#60721
jakobbotsch merged 1 commit intodotnet:mainfrom
jakobbotsch:no-reloc-generation-for-handles

Conversation

@jakobbotsch
Copy link
Copy Markdown
Member

@jakobbotsch jakobbotsch commented Oct 21, 2021

Due to #60712 we cannot unconditionally generate lea for handles, since
the runtime does not expect us to ask for reloc hints for
arbitrary constants. In addition, for many Intel CPUs it looks like
rip-relative lea has greater latency than mov with an 8-byte immediate.

Instead of reverting the change I'm just turning it off here, since the
change also unified a couple of functions to simplify the handling.

Fix #60626
Fix #60627
Fix #60629

Due to dotnet#60712 we cannot unconditionally generate lea for handles, since
the runtime does not expect us to generate ask for reloc hints for
arbitrary constants. In addition, for many Intel CPUs it looks like
rip-relative lea has greater latency than mov with an 8-byte immediate.

Instead of reverting the change I'm just turning it off here, since the
change also unified a couple of functions to simplify the handling.

Fix dotnet#60627
Fix dotnet#60626
@ghost ghost added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Oct 21, 2021
@ghost
Copy link
Copy Markdown

ghost commented Oct 21, 2021

Tagging subscribers to this area: @JulieLeeMSFT
See info in area-owners.md if you want to be subscribed.

Issue Details

Due to #60712 we cannot unconditionally generate lea for handles, since
the runtime does not expect us to generate ask for reloc hints for
arbitrary constants. In addition, for many Intel CPUs it looks like
rip-relative lea has greater latency than mov with an 8-byte immediate.

Instead of reverting the change I'm just turning it off here, since the
change also unified a couple of functions to simplify the handling.

Fix #60627
Fix #60626

Author: jakobbotsch
Assignees: -
Labels:

area-CodeGen-coreclr

Milestone: -

@jakobbotsch
Copy link
Copy Markdown
Member Author

cc @dotnet/jit-contrib. ASM diffs are the opposite of #60228 (comment).

@jakobbotsch
Copy link
Copy Markdown
Member Author

The test failures look to be preexisting.

Copy link
Copy Markdown
Member

@AndyAyersMS AndyAyersMS left a comment

Choose a reason for hiding this comment

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

LGTM.

@jakobbotsch jakobbotsch merged commit 24864a9 into dotnet:main Oct 22, 2021
@jakobbotsch jakobbotsch deleted the no-reloc-generation-for-handles branch October 22, 2021 16:00
@ghost ghost locked as resolved and limited conversation to collaborators Nov 21, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Regressions in Benchstone.BenchI.EightQueens Regressions in System.Collections.CtorFromCollection<String> Regressions in SeekUnroll

2 participants