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

Enable ETW_EBP_FRAMED flag on System V systems. #468

Merged
merged 1 commit into from
Mar 19, 2015

Conversation

LLITCHEV
Copy link

Enable the ETW_EBP_FRAMED flag on System V systems to allow for using
frame pointer (RBP) for mostly all functions.
The change includes:

  1. Removing RBP from all the lists of registers that the RA uses to assign
    to tmps/vars/etc.
  2. Enable generation of unwind info for pushing of REG_FPBASE even if not included in callee-save list
    of registers.
    3 Fixed a conservative assert - for System V systems stack offset for reg
    passed argument can be 0 or even positive.

@LLITCHEV
Copy link
Author

@shanselman @CarolEidt @BruceForstall
Could you please take a look.

@LLITCHEV
Copy link
Author

@schellap Could you look into this please?

* so reserve two extra callee saved
* This is better than pushing eax, ecx, because we in the later
* we will mess up already computed offsets on the stack (for ESP frames)
*/
Copy link
Member

Choose a reason for hiding this comment

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

Are you not in sync? Looks like you changed this to // style comments before, and now you're reverting that.

Copy link
Author

Choose a reason for hiding this comment

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

I am up to date. Thanks! Long story... Had to revert so, I branch this branch as close as the master for the next work item. I will make sure I check in the right style comment.

@BruceForstall
Copy link
Member

LGTM

@brianrob
Copy link
Member

I did a quick test of this change on OSX and the profiler seems to be able to walk stacks including both native and JIT compiled code (even though it can't resolve the JIT frames to names). The data seems much more cohesive with this change. Thanks!

@LLITCHEV
Copy link
Author

Thanks Brian! I am doing very extensive testing on this right now. It is rather pervasive change. I don't want to regress something. I will check it in as soon as DDRs complete. Thanks again! And thank you for the patience...

@brianrob
Copy link
Member

Awesome. No worries at all - this is not really blocking anything at this point, but it is going to give us much better perf and tracing data when we really start to collect it.

Enable the ETW_EBP_FRAMED flag on System V systems to allow for using
frame pointer (RBP) for mostly all functions.
The change includes:
1. Removing RBP from all the lists of registers that the RA uses to assign
to tmps/vars/etc.
2. Enable generation of unwind info for pushing of REG_FPBASE even if not included in callee-save list
of registers.
3 Fixed a conservative assert - for System V systems stack offset for reg
passed argument can be 0 or even positive.
@LLITCHEV
Copy link
Author

Done testing this extensively. DDRs passed on Windows with and without the feature enabled. No Win Asm diffs.

LLITCHEV added a commit that referenced this pull request Mar 19, 2015
Enable ETW_EBP_FRAMED flag on System V systems.
@LLITCHEV LLITCHEV merged commit 690517f into dotnet:master Mar 19, 2015
@LLITCHEV LLITCHEV deleted the work branch March 19, 2015 21:27
@LLITCHEV
Copy link
Author

Just merged in master.

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.

4 participants