Avoid unnecessary scratch datums for by-copy function arguments
Avoid unnecessary scratch datums for by-copy function arguments

Currently, by-copy function arguments are always stored into a scratch
datum, which serves two purposes.  First, it is required to be able to
have a temporary cleanup, in case that the call fails before the callee
actually takes ownership of the value. Second, if the argument is to be
passed by reference, the copy is required, so that the function doesn't
get a reference to the original value.

But in case that the datum does not need a drop glue call and it is
passed by value, there's no need to perform the extra copy.

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