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