Passing by address is more conventional. This is what MLIR does most of the time, and it avoids dereferences and addressofs everywhere.
Pipe
This removes unnecessary Pipe from filenames which the directory name already contains. This also renames some of them to match the *new* pipeline.