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

Opaque Pointers #533

Merged
merged 35 commits into from
Mar 9, 2024
Merged

Opaque Pointers #533

merged 35 commits into from
Mar 9, 2024

Conversation

fabianbs96
Copy link
Member

Currently, PhASAR relies on being able to query pointer-element-types. When moving to LLVM 15, this won't be possible anymore by default (there might be some configuration options to re-enable them for some time, but we should get used to not using them anymore).

This PR removes the dependencies to non-opaque pointers wherever possible without changing the semantics.
For some cases, this is not (easily) possible, so they got marked as deprecated.

…ementType() wherever possible and deprecate everything else; TODO: How to deal with the legacy stuff that got deprecated?
@fabianbs96 fabianbs96 self-assigned this Nov 14, 2022
@fabianbs96 fabianbs96 linked an issue Feb 22, 2023 that may be closed by this pull request
1 task
@fabianbs96 fabianbs96 marked this pull request as ready for review April 3, 2023 16:28
@fabianbs96 fabianbs96 requested a review from MMory as a code owner April 3, 2023 16:28
Comment on lines 142 to +147
void DTAResolver::otherInst(const llvm::Instruction *Inst) {
if (Inst->getType()->isOpaquePointerTy()) {
/// XXX: We may want to get these information on a different way, e.g. by
/// analyzing the debug info
return;
}
Copy link
Member

Choose a reason for hiding this comment

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

This remains a TODO, doesn't it?

Copy link
Member Author

Choose a reason for hiding this comment

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

Yes, we may want to add a ticket in the issue board for this

Copy link
Member

Choose a reason for hiding this comment

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

Agreed. Maybe someone who uses DTA might contribute to fix this. Add to BreakingChanges.md?

lib/PhasarLLVM/ControlFlow/Resolver/Resolver.cpp Outdated Show resolved Hide resolved
lib/PhasarLLVM/Pointer/LLVMAliasGraph.cpp Outdated Show resolved Hide resolved
lib/PhasarLLVM/Pointer/LLVMAliasSet.cpp Outdated Show resolved Hide resolved
lib/PhasarLLVM/Pointer/LLVMBasedAliasAnalysis.cpp Outdated Show resolved Hide resolved
lib/PhasarLLVM/Pointer/LLVMBasedAliasAnalysis.cpp Outdated Show resolved Hide resolved
lib/PhasarLLVM/Utils/LLVMShorthands.cpp Outdated Show resolved Hide resolved
Copy link
Member

@MMory MMory left a comment

Choose a reason for hiding this comment

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

lgtm, what a huge chunk of work 👍
merging will take place at the right moment®

@fabianbs96 fabianbs96 merged commit d5bd11d into development Mar 9, 2024
4 checks passed
@fabianbs96 fabianbs96 deleted the f-OpaquePointers branch March 9, 2024 13:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Prepare for LLVM 15
2 participants