Skip to content

Conversation

@abadams
Copy link
Member

@abadams abadams commented Aug 28, 2025

Removing this seems to have caused SCEV to stall on the Mullapudi overlap test on x86-32. This was the backup plan - just don't promise the second GEP is in-bounds.

Related: #8768 #8766.

Removing this seems to have caused SCEV to stall on the Mullapudi
overlap test on x86-32. This was the backup plan - just don't promise
the second GEP is in-bounds.
Copy link
Contributor

@mcourteaux mcourteaux left a comment

Choose a reason for hiding this comment

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

Shouldn't the "in-boundness" be a parameter? And only when you peel off a constant, you recurse and call it with in_bounds=false?

@mcourteaux
Copy link
Contributor

Hmm, it seems that it rebreaks the correctness_indexing_access_undef test.

@abadams
Copy link
Member Author

abadams commented Aug 29, 2025

Yeah probably. I'll try that. It turns out "inbounds" also promises the base pointer is in bounds, which it isn't. So I'll need to relax both GEPs

@abadams
Copy link
Member Author

abadams commented Aug 29, 2025

Unfortunately if I make all the metadata accurate the stall comes back. The access undef indexing test relies on what would be unsigned wrapping in some index computation, and LLVM is working very hard to prove the absence of wrapping. It early-outs if we promise there is none, but there legitimately is. The LLVM pass in question has some builtin safeguards to stop it doing too much work, but they don't seem to be triggering. I'm trying to find out if we can structure things in a way that it can handle more gracefully.

@abadams
Copy link
Member Author

abadams commented Sep 2, 2025

Closed in favor of #8793

@abadams abadams closed this Sep 2, 2025
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