This repository has been archived by the owner on Jan 23, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Make GT_LIST processing non-recursive to avoid StackOverflow.
We had some internal cases where crossgen failed with StackOverflow exception when compiling huge methods. In particular, the methods had GT_PHI nodes with huge number of arguments. StackOverflow was happening in multiple places. Recent LIR changes eliminated two of those places, these changes eliminate two more: gtSetEvalOrder and fgDebugCheckFlags (debug only). We already had gtSetListOrder but it was only used for call arg lists. I made gtSetListOrder non-recursive and also generalized to handle other GT_LIST nodes. With that with these changes the huge repros can now be crossgen'd. I verified no assembly diffs in SuperPMI. I'm verifying overall throughput effect.
- Loading branch information
1 parent
bcd4c0c
commit a67f569
Showing
3 changed files
with
282 additions
and
157 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.