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

ssair: remove many unnecessary method allocations #27299

Merged
merged 3 commits into from
May 29, 2018
Merged

Conversation

vtjnash
Copy link
Sponsor Member

@vtjnash vtjnash commented May 28, 2018

inference / optimization needs to be more careful than other code,
and the new ssair code has not been careful to follow best-practices for
this code and avoid dynamic code patterns
(and instead writing "C-like" code as much as reasonable)

JeffBezanson and others added 3 commits May 23, 2018 14:06
inference / optimization needs to be more careful than other code,
and the new ssair code has not been careful to follow best-practices for
this code and avoid dynamic code patterns
(and instead writing "C-like" code as much as reasonable)
@vtjnash vtjnash requested a review from Keno May 28, 2018 23:48
@@ -6610,6 +6615,9 @@ static std::unique_ptr<Module> emit_function(
}
if (!jl_is_uniontype(phiType) || !TindexN) {
if (VN) {
// XXX: this code assumes that `val` is of type `phiType` statically,
Copy link
Member

Choose a reason for hiding this comment

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

As I mentioned in person, I do want this invariant to hold statically. I'm working on a PR to add that to the verifier and fix the cases that currently violate it.

Copy link
Sponsor Member Author

Choose a reason for hiding this comment

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

Perhaps. Currently the type-system is incapable of maintaining your desired invariant however (it's most common to observe this during IPO transforms such as inlining, although rare to come across such an example and thus not simple to construct from first principles a reliable example).

@ViralBShah
Copy link
Member

Great to see compile time performance being reclaimed on top of the new optimizer!

@vtjnash vtjnash merged commit fd29c81 into master May 29, 2018
@vtjnash vtjnash deleted the jn/ssair_cleanup branch May 29, 2018 17:20
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.

4 participants