Skip to content

Conversation

@fhahn
Copy link

@fhahn fhahn commented Nov 17, 2025

…. (llvm#167965)

Extend willNotFreeBetween to perform simple checking across blocks to support the case where CtxI is in a successor of the block that contains the assume, but the assume's parent is the single predecessor of CtxI's block.

This enables using _builtin_assume_dereferenceable to vectorize std::find_if and co in practice.

End-to-end reproducer: https://godbolt.org/z/6jbsd4EjT

PR: llvm#167965 (cherry picked from commit eb98b65)

llvm#167965)

Extend willNotFreeBetween to perform simple checking across blocks to
support the case where CtxI is in a successor of the block that contains
the assume, but the assume's parent is the single predecessor of CtxI's
block.

This enables using _builtin_assume_dereferenceable to vectorize
std::find_if and co in practice.

End-to-end reproducer: https://godbolt.org/z/6jbsd4EjT

PR: llvm#167965
(cherry picked from commit eb98b65)
@fhahn
Copy link
Author

fhahn commented Nov 17, 2025

@swift-ci please test

@fhahn
Copy link
Author

fhahn commented Nov 17, 2025

@swift-ci please test llvm

@juliannagele
Copy link
Member

On llvm#167965 I think you also had llvm@20db716 as a follow-up, do you need that here as well? LGTM otherwise

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.

2 participants