auto merge of #13935 : thestinger/rust/noalias, r=pcwalton
auto merge of #13935 : thestinger/rust/noalias, r=pcwalton

This was removed because these could alias with `&const T` or `@mut T`
and those are now gone from the language. There are still aliasing
issues within local scopes, but this is correct for function parameters.

This also removes the no-op `noalias` marker on proc (not a pointer) and
leaves out the mention of #6750 because real type-based alias analysis
is not within the scope of best effort usage of the `noalias` attribute.

Test case:

    pub fn foo(x: &mut &mut u32) {
        **x = 5;
        **x = 5;
    }

Before:

    define void @_ZN3foo20h0ce94c9671b0150bdaa4v0.0E(i32** nocapture readonly) unnamed_addr #0 {
    entry-block:
      %1 = load i32** %0, align 8
      store i32 5, i32* %1, align 4
      %2 = load i32** %0, align 8
      store i32 5, i32* %2, align 4
      ret void
    }

After:

    define void @_ZN3foo20h0ce94c9671b0150bdaa4v0.0E(i32** noalias nocapture readonly) unnamed_addr #0 {
    entry-block:
      %1 = load i32** %0, align 8
      store i32 5, i32* %1, align 4
      ret void
    }

Closes #12436

AerialX/rust-rt-minimal,XMPPwocky/rust,mihneadb/rust,aidancully/rust,untitaker/rust,carols10cents/rust,ktossell/rust,mihneadb/rust,P1start/rust,jashank/rust,jashank/rust,aturon/rust,aturon/rust,victorvde/rust,victorvde/rust,gifnksm/rust,ruud-v-a/rust,defuz/rust,jroesch/rust,philyoon/rust,emk/rust,pczarn/rust,sae-bom/rust,emk/rust,quornian/rust,zubron/rust,philyoon/rust,barosl/rust,zubron/rust,mahkoh/rust,stepancheg/rust-ide-rust,aneeshusa/rust,ebfull/rust,nham/rust,jbclements/rust,sae-bom/rust,stepancheg/rust-ide-rust,zaeleus/rust,jashank/rust,aturon/rust,l0kod/rust,victorvde/rust,robertg/rust,GBGamer/rust,aturon/rust,quornian/rust,mdinger/rust,seanrivera/rust,omasanori/rust,P1start/rust,GBGamer/rust,vhbit/rust,GBGamer/rust,quornian/rust,defuz/rust,barosl/rust,ktossell/rust,ruud-v-a/rust,pshc/rust,kwantam/rust,Ryman/rust,pshc/rust,dwillmer/rust,l0kod/rust,gifnksm/rust,nwin/rust,miniupnp/rust,aturon/rust,zachwick/rust,krzysz00/rust,KokaKiwi/rust,rprichard/rust,shepmaster/rand,erickt/rust,pshc/rust,zachwick/rust,XMPPwocky/rust,quornian/rust,omasanori/rust,jbclements/rust,retep998/rand,kimroen/rust,graydon/rust,cllns/rust,ruud-v-a/rust,aturon/rust,reem/rust,rprichard/rust,achanda/rand,waynenilsen/rand,aepsil0n/rust,P1start/rust,AerialX/rust-rt-minimal,ktossell/rust,P1start/rust,0x73/rust,carols10cents/rust,barosl/rust,mvdnes/rust,bombless/rust,erickt/rust,KokaKiwi/rust,miniupnp/rust,mihneadb/rust,philyoon/rust,quornian/rust,victorvde/rust,zubron/rust,zubron/rust,untitaker/rust,aepsil0n/rust,ebfull/rust,AerialX/rust,carols10cents/rust,gifnksm/rust,jashank/rust,avdi/rust,bombless/rust,avdi/rust,nham/rust,kwantam/rust,aepsil0n/rust,rohitjoshi/rust,aneeshusa/rust,robertg/rust,avdi/rust,vhbit/rust,jashank/rust,XMPPwocky/rust,P1start/rust,ruud-v-a/rust,jbclements/rust,defuz/rust,bluss/rand,richo/rust,seanrivera/rust,carols10cents/rust,GBGamer/rust,nwin/rust,aepsil0n/rust,nwin/rust,vhbit/rust,jroesch/rust,seanrivera/rust,dwillmer/rust,bombless/rust,Ryman/rust,mihneadb/rust,emk/rust,Ryman/rust,jbclements/rust,mdinger/rust,pczarn/rust,l0kod/rust,ejjeong/rust,graydon/rust,reem/rust,pczarn/rust,jroesch/rust,pelmers/rust,kwantam/rust,dinfuehr/rust,miniupnp/rust,AerialX/rust,GBGamer/rust,pczarn/rust,zaeleus/rust,pshc/rust,0x73/rust,servo/rust,pshc/rust,zaeleus/rust,reem/rust,AerialX/rust-rt-minimal,andars/rust,GBGamer/rust,KokaKiwi/rust,nwin/rust,miniupnp/rust,vhbit/rust,emk/rust,bombless/rust,erickt/rust,reem/rust,KokaKiwi/rust,dinfuehr/rust,untitaker/rust,bhickey/rand,nwin/rust,ejjeong/rust,robertg/rust,ebfull/rust,jroesch/rust,ktossell/rust,AerialX/rust-rt-minimal,kimroen/rust,zaeleus/rust,krzysz00/rust,ktossell/rust,aepsil0n/rust,defuz/rust,dinfuehr/rust,philyoon/rust,rohitjoshi/rust,nham/rust,Ryman/rust,seanrivera/rust,jbclements/rust,AerialX/rust,sae-bom/rust,servo/rust,andars/rust,zubron/rust,hauleth/rust,mvdnes/rust,dwillmer/rust,barosl/rust,pshc/rust,ejjeong/rust,Ryman/rust,l0kod/rust,barosl/rust,zachwick/rust,pshc/rust,richo/rust,dwillmer/rust,miniupnp/rust,kimroen/rust,XMPPwocky/rust,zubron/rust,carols10cents/rust,servo/rust,nwin/rust,gifnksm/rust,ejjeong/rust,ktossell/rust,XMPPwocky/rust,emk/rust,pshc/rust,kimroen/rust,KokaKiwi/rust,dwillmer/rust,TheNeikos/rust,AerialX/rust,erickt/rust,mahkoh/rust,TheNeikos/rust,victorvde/rust,rprichard/rust,miniupnp/rust,dinfuehr/rust,omasanori/rust,untitaker/rust,robertg/rust,AerialX/rust-rt-minimal,mdinger/rust,servo/rust,rohitjoshi/rust,avdi/rust,miniupnp/rust,erickt/rust,dwillmer/rust,l0kod/rust,krzysz00/rust,gifnksm/rust,aidancully/rust,TheNeikos/rust,nham/rust,mahkoh/rust,pczarn/rust,rohitjoshi/rust,aidancully/rust,aturon/rust,GBGamer/rust,nwin/rust,GrahamDennis/rand,mdinger/rust,pelmers/rust,untitaker/rust,TheNeikos/rust,omasanori/rust,ejjeong/rust,quornian/rust,zachwick/rust,rprichard/rust,mvdnes/rust,aidancully/rust,ejjeong/rust,ruud-v-a/rust,aidancully/rust,dinfuehr/rust,graydon/rust,graydon/rust,rprichard/rust,robertg/rust,ktossell/rust,sae-bom/rust,mdinger/rust,graydon/rust,zaeleus/rust,ruud-v-a/rust,vhbit/rust,jbclements/rust,pelmers/rust,Ryman/rust,kwantam/rust,P1start/rust,andars/rust,nham/rust,l0kod/rust,ebfull/rust,reem/rust,richo/rust,gifnksm/rust,zubron/rust,0x73/rust,richo/rust,reem/rust,jbclements/rust,rprichard/rust,quornian/rust,mvdnes/rust,emk/rust,philyoon/rust,jashank/rust,AerialX/rust,servo/rust,zaeleus/rust,GBGamer/rust,sae-bom/rust,l0kod/rust,omasanori/rust,erickt/rust,stepancheg/rust-ide-rust,dwillmer/rust,kimroen/rust,TheNeikos/rust,jashank/rust,servo/rust,seanrivera/rust,arthurprs/rand,huonw/rand,krzysz00/rust,mvdnes/rust,hauleth/rust,cllns/rust,jroesch/rust,vhbit/rust,hauleth/rust,pczarn/rust,aneeshusa/rust,nham/rust,zachwick/rust,zubron/rust,hauleth/rust,carols10cents/rust,krzysz00/rust,aidancully/rust,richo/rust,mdinger/rust,l0kod/rust,dinfuehr/rust,rohitjoshi/rust,0x73/rust,ebfull/rust,bombless/rust,TheNeikos/rust,dwillmer/rust,defuz/rust,mahkoh/rust,nwin/rust,AerialX/rust,sae-bom/rust,Ryman/rust,jroesch/rust,mahkoh/rust,pczarn/rust,jroesch/rust,mihneadb/rust,P1start/rust,seanrivera/rust,philyoon/rust,stepancheg/rust-ide-rust,stepancheg/rust-ide-rust,ebfull/rand,mahkoh/rust,KokaKiwi/rust,hauleth/rust,barosl/rust,barosl/rust,pelmers/rust,0x73/rust,zachwick/rust,mihneadb/rust,nham/rust,andars/rust,jashank/rust,robertg/rust,vhbit/rust,vhbit/rust,victorvde/rust,0x73/rust,pelmers/rust,cllns/rust,krzysz00/rust,kimroen/rust,kimroen/rust,bombless/rust,jroesch/rust,aneeshusa/rust,andars/rust,AerialX/rust-rt-minimal,cllns/rust,richo/rust,aneeshusa/rust,erickt/rust,untitaker/rust,pelmers/rust,servo/rust,XMPPwocky/rust,ebfull/rust,kwantam/rust,stepancheg/rust-ide-rust,avdi/rust,defuz/rust,omasanori/rust,rohitjoshi/rust,cllns/rust,andars/rust,emk/rust,stepancheg/rust-ide-rust,cllns/rust,jbclements/rust,bombless/rust-docs-chinese,aepsil0n/rust,jbclements/rust,mvdnes/rust,miniupnp/rust,avdi/rust,hauleth/rust,0x73/rust,kwantam/rust,aneeshusa/rust,graydon/rust