Skip to content

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

Merged
chakrabot merged 1 commit into
chakra-core:masterfrom
meg-gupta:tryinline
Oct 12, 2017
Merged

Enable inlining into functions which have try-catch/try-finally#3832
chakrabot merged 1 commit into
chakra-core:masterfrom
meg-gupta:tryinline

Conversation

@meg-gupta

Copy link
Copy Markdown
Contributor

No description provided.

Comment thread lib/Runtime/Language/JavascriptStackWalker.cpp Outdated
@mmitche

mmitche commented Sep 29, 2017

Copy link
Copy Markdown
Contributor

@dotnet-bot test this please

@meg-gupta

Copy link
Copy Markdown
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
@meg-gupta
meg-gupta requested review from LouisLaf and rajatd October 1, 2017 22:56
@mmitche

mmitche commented Oct 2, 2017

Copy link
Copy Markdown
Contributor

@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
Comment thread lib/Backend/GlobOpt.cpp Outdated
Comment thread lib/Runtime/Language/EHBailoutData.h Outdated

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
Copy Markdown
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?

Comment thread lib/Backend/LinearScan.cpp Outdated
Comment thread lib/Runtime/Language/JavascriptExceptionOperators.cpp Outdated
Comment thread lib/Runtime/Language/JavascriptStackWalker.cpp
@meg-gupta

Copy link
Copy Markdown
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