# Understanding ByValOptimization on MemCpyOpt
## What is ByVal Optimization on MemCpyOpt?
a part of MemCpyOptimizer on LLVM-middleend path
https://github.com/llvm/llvm-project/blob/main/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp#L1538-L1539
Let's show the overview of this pass(on 2023/05/28)
TODO: are there any optimization using byval attributes except MemCpyOptimizer?
### ByVal attributes
## The conditions to remove `memcpy` of byval Arguments
### Memory clobber
### alignment