This patch stems from D84112. This patch includes changes for SROA optimization.
Details
Diff Detail
Event Timeline
I see what seem to be changes to codegen here (see inline comments), is that intentional? And if so, why is that needed for DW_OP_LLVM_explicit_pointer to work?
llvm/lib/IR/Metadata.cpp | ||
---|---|---|
395 | Why is this now permitted behaviour? | |
llvm/lib/Transforms/Scalar/EarlyCSE.cpp | ||
1648–1654 | Is this necessary for the implicit pointer work? | |
llvm/lib/Transforms/Scalar/SROA.cpp | ||
4419–4503 | Again, this block of code will need comments about its purpose adding. | |
4449–4453 | This part looks like it's changing the code generated, replacing a GEP with an alloca. If that's the case, IMO this should be split out into a different patch (one for codegen, one for debuginfo), as any codegen change will need an independent argument as to why it's a good idea. Plus, this would only be a codegen change for people building with dwarf-5, which would mean you get different code with and without the -g option to clang. | |
llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp | ||
424 ↗ | (On Diff #279045) | This should be folded into the previous patch (7?) |