As we will discuss in Sec­tion 3.2, source-level transformations also have drawbacks in both complexity of evaluating coding styles as well as analysis to determine how code will be affected by optimization.
we use LLVM-IR and LLVM's debug metadata to track source correspondence without these limitations.