This is an archive of the discontinued LLVM Phabricator instance.

CFLAA -- ConstantExpr Awareness
ClosedPublic

Authored by george.burgess.iv on Mar 5 2015, 11:04 PM.

Details

Summary

// Hal already LGTM'ed an earlier version of this patch -- there are a few minor revisions that have been made to it.

Makes CFLAA aware of ConstantExpr Value*s, and how to traverse into them to get to properly handle their non-ConstantExpr parts.

Accuracy drop in tests is part of a minor bug fix where we wouldn't properly tag arguments with StratifiedAttrs if said arguments were never otherwise put in the Stratified Sets.

Diff Detail

Event Timeline

george.burgess.iv retitled this revision from to CFLAA -- ConstantExpr Awareness .
george.burgess.iv updated this object.
george.burgess.iv edited the test plan for this revision. (Show Details)
george.burgess.iv added a subscriber: Unknown Object (MLST).
majnemer added inline comments.
lib/Analysis/CFLAliasAnalysis.cpp
966–976

What if the constant is a ConstantArray/ConstantStruct/ConstantVector with a GlobalValue field?

Addressed David's feedback, fixed a bug where we'd hit llvm_unreachable upon attempting to bootstrap LLVM.

dberlin edited edge metadata.Mar 7 2015, 6:28 PM

LGTM algorithmically

majnemer accepted this revision.Mar 7 2015, 9:05 PM
majnemer added a reviewer: majnemer.

LGTM

This revision is now accepted and ready to land.Mar 7 2015, 9:05 PM