| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -88,7 +88,7 @@ These optimizations also tend to prove the soundness of bigger optimizations
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					such as loop vectorization, constant propagation, and dead code elimination.
 | 
					 | 
					 | 
					 | 
					such as loop vectorization, constant propagation, and dead code elimination.
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					In the previous example, we used the fact that `&mut u32` can't be aliased to prove
 | 
					 | 
					 | 
					 | 
					In the previous example, we used the fact that `&mut u32` can't be aliased to prove
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					that writes to `*output` can't possibly affect `*input`. This let us cache `*input`
 | 
					 | 
					 | 
					 | 
					that writes to `*output` can't possibly affect `*input`. This lets us cache `*input`
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					in a register, eliminating a read.
 | 
					 | 
					 | 
					 | 
					in a register, eliminating a read.
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					By caching this read, we knew that the write in the `> 10` branch couldn't
 | 
					 | 
					 | 
					 | 
					By caching this read, we knew that the write in the `> 10` branch couldn't
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
 
 |