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
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

Reply via email to