Hi Owen,
> - (isa<Argument>(Object) && cast<Argument>(Object)->hasByValAttr())))
> {
> - // Okay, the pointer is to a stack allocated object. If we can prove
> that
> + (isa<Argument>(Object) &&
> + (cast<Argument>(Object)->hasByValAttr() ||
> +
> cast<Argument>(Object)->hasNoAliasAttr())))) {
> + // Okay, the pointer is to a stack allocated (or effectively so, for
> + // for noalias parameters) object. If we can prove that
there are now a bunch of places in BasicAliasAnalysis which do the same thing
for byval and noalias. That's because byval implies noalias. How about
renaming
hasNoAliasAttr to isNoAlias and have it check both the noalias and byval
attributes?
Ciao,
Duncan.
_______________________________________________
llvm-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits