Call-by-value copies the actual arguments of a function to its formal parameters. In our example above, 4+1 is the actual argument which is being copied to the formal parameter y. As CBV copies all the arguments, it needs to evaluate them until they reduce to a value which is then used by the function. The flow diagram above is showing how CBV evaluates the function call squareSum(2, 4+1).
The advantage of CBV is that it evaluates every function argument only once.