This is the parent pass of D73307.
This adds a new pass to make internal linkage symbol names unique with clang option -funique-internal-linkage-symbols.
| Paths 
 |  Differential  D78243  
New pass to make internal linkage symbol names unique ClosedPublic Authored by tmsriram on Apr 15 2020, 2:19 PM. 
Details 
Diff Detail Event Timelinetmsriram added a child revision: D73307: Unique Names for Functions with Internal Linkage.Apr 15 2020, 2:19 PM 
 Comment Actions Code looks good, but I think this needs a test in llvm/test/Transforms. I think it should be registered by the INITIALIZE_PASS macros, so opt -unique-internal-linkage-names should find it and run it... Comment Actions 
 Done. Comment Actions lgtm, plus improvement to test. 
 This revision is now accepted and ready to land.Apr 17 2020, 1:11 PM 
 Comment Actions You may need an opt -passes='...' test for the new pass manager and implement the new pass. We are using -fexperimental-new-pass-manager heavily. 
 Comment Actions 
 I am already testing -fexperimental-new-pass-manager in D73307, need to do it here? Comment Actions 
 Probably wouldn't hurt to have both an explicit test for each pass manager. Closed by commit rG365b60fc9371: New pass to make internal linkage symbol names unique. (authored by tmsriram).  ·  Explain WhyApr 20 2020, 3:13 PM This revision was automatically updated to reflect the committed changes. tmsriram marked 3 inline comments as done. Comment Actions 
 I saw this after I pushed. I can follow it up with a test. 
Revision Contents 
Diff 258452 llvm/include/llvm/InitializePasses.h
 llvm/include/llvm/Transforms/Utils.h
 llvm/include/llvm/Transforms/Utils/UniqueInternalLinkageNames.h
 llvm/lib/Transforms/Utils/CMakeLists.txt
 llvm/lib/Transforms/Utils/UniqueInternalLinkageNames.cpp
 llvm/lib/Transforms/Utils/Utils.cpp
 llvm/test/Transforms/UniqueInternalLinkageNames/unique_symbol_names.ll
 llvm/utils/gn/secondary/llvm/lib/Transforms/Utils/BUILD.gn
 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
The defaulted default constructor can be deleted.