nikic wrote: > > The pipeline test changes here still look problematic. Can you make the > > ObjCARCContract pass preserve the DT? > > ObjCARCContractPass can't preserve the DT at static time, it may alter CFG > (See more in [this patch](https://reviews.llvm.org/D92808)). Unfortunately, > legacy PM won't let us preserve the DT at runtime.
You don't need to dynamically preserve the DT, you should mark it as unconditionally preserved in AnalysisUsage. From a quick glance at the pass, the only CFG change it does is critical edge splitting, and DT is already passed while doing that, so it will be updated: https://github.com/llvm/llvm-project/blob/f1fd9d716decf3513c8ae54df1d60462eb878fb5/llvm/lib/Transforms/ObjCARC/ObjCARC.cpp#L61 You're currently just not telling the pass managers that this is the case. https://github.com/llvm/llvm-project/pull/101114 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits