Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable inlining into functions which have try-catch/try-finally #3832

Merged
merged 1 commit into from
Oct 12, 2017

Conversation

meg-gupta
Copy link
Contributor

No description provided.

@mmitche
Copy link
Contributor

mmitche commented Sep 29, 2017

@dotnet-bot test this please

@meg-gupta
Copy link
Contributor Author

There are issues that need to be worked in the stack walker, I will reopen once they are fixed.

@meg-gupta meg-gupta closed this Sep 29, 2017
@meg-gupta meg-gupta reopened this Oct 1, 2017
@meg-gupta meg-gupta force-pushed the tryinline branch 4 times, most recently from ef3ef3a to d2e0a4e Compare October 1, 2017 19:54
@mmitche
Copy link
Contributor

mmitche commented Oct 2, 2017

@dotnet-bot dotnet-bot Linked test this please

@meg-gupta meg-gupta force-pushed the tryinline branch 5 times, most recently from e5a6c57 to d119260 Compare October 5, 2017 22:10
lib/Backend/GlobOpt.cpp Outdated Show resolved Hide resolved

public:
EHBailoutData() : nestingDepth(-1), catchOffset(0), finallyOffset(0), parent(nullptr), child(nullptr), ht(HT_None) {}
EHBailoutData() : nestingDepth(-1), catchOffset(0), finallyOffset(0), parent(nullptr), child(nullptr), ht(HT_None), inlineeCode(nullptr) {}
Copy link
Contributor

Choose a reason for hiding this comment

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

nullptr [](start = 137, length = 7)

init to false?

lib/Backend/LinearScan.cpp Outdated Show resolved Hide resolved
@meg-gupta
Copy link
Contributor Author

@rajatd Addressed review comments

- Avoid copy prop s0 (return symbol) into inlined functions

- Clear inlinee callinfo : When there is an exception in an inlinee which is inside an EH region, we end up leaving datastructures in stackwalker dirty.
If the EH handler was a try catch, and if the same code is executed in a loop  in the interprerter after BailOnNoException,
the stack walker due to dirty datastructures assumes that there are inlinee frames on the stack.
@chakrabot chakrabot merged commit e0bed61 into chakra-core:master Oct 12, 2017
chakrabot pushed a commit that referenced this pull request Oct 12, 2017
…y-catch/try-finally

Merge pull request #3832 from meg-gupta:tryinline
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants