Skip to content

Conversation

@aviatesk
Copy link
Member

@aviatesk aviatesk commented Nov 8, 2023

Since now effects can be refined by post-opt analysis, typeinf_edge should propagate frame.result.ipo_effects instead of frame.ipo_effects.

@aviatesk aviatesk requested a review from Keno November 8, 2023 17:14
@aviatesk aviatesk force-pushed the avi/post-opt-idempotency branch 2 times, most recently from 7a60dca to 26000d3 Compare November 9, 2023 05:18
k43296(b, j, ::Nothing) = b
i43296(b, j) = k43296(b, j, r43296(j))
@test only(Base.return_types(i43296, (Int, C43296{C43296{C43296{Val, Tuple}, Tuple}}))) == Int
@test only(Base.return_types(i43296, (Int, C43296{C43296{C43296{Val, Tuple}}}))) <: Int
Copy link
Member Author

Choose a reason for hiding this comment

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

This call signature would always result in an error, which can now be discovered by concrete-evaluation.


# inlining with unmatched type parameters
@eval struct OldVal{T}
x::T
Copy link
Member Author

Choose a reason for hiding this comment

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

The previous definition was actually invalid, causing segfault when concretized.

@aviatesk aviatesk force-pushed the avi/post-opt-idempotency branch from 26000d3 to 99b8a2c Compare November 9, 2023 05:47
Since now effects can be refined by post-opt analysis, `typeinf_edge`
should propagate `frame.result.ipo_effects` instead of
`frame.ipo_effects`.
@aviatesk aviatesk force-pushed the avi/post-opt-idempotency branch from 99b8a2c to 358540c Compare November 9, 2023 05:53
@aviatesk aviatesk merged commit 529e4e7 into master Nov 9, 2023
@aviatesk aviatesk deleted the avi/post-opt-idempotency branch November 9, 2023 09:37
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.

3 participants