@@ -36,10 +36,6 @@ using namespace swift;
36
36
// Tracing within the implementation can also be activated by the pass.
37
37
#define DEBUG_TYPE pass.debugType
38
38
39
- llvm::cl::opt<bool > EnableLoadSplittingDebugInfo (
40
- " sil-load-splitting-debug-info" , llvm::cl::init(false ),
41
- llvm::cl::desc(" Create debug fragments at -O for partial loads" ));
42
-
43
39
// Vtable anchor.
44
40
CanonicalizeInstruction::~CanonicalizeInstruction () {}
45
41
@@ -301,19 +297,6 @@ splitAggregateLoad(LoadOperation loadInst, CanonicalizeInstruction &pass) {
301
297
}
302
298
pass.notifyNewInstruction (**lastNewLoad);
303
299
304
- // FIXME: This drops debug info at -Onone load-splitting is required at
305
- // -Onone for exclusivity diagnostics. Fix this by
306
- //
307
- // 1. At -Onone, preserve the original load when pass.preserveDebugInfo is
308
- // true, but moving it out of its current access scope and into an "unknown"
309
- // access scope, which won't be enforced as an exclusivity violation.
310
- //
311
- // 2. At -O, create "debug fragments" recover as much debug info as possible
312
- // by creating debug_value fragments for each new partial load. Currently
313
- // disabled because of LLVM back-end crashes.
314
- if (!pass.preserveDebugInfo && EnableLoadSplittingDebugInfo) {
315
- createDebugFragments (*loadInst, proj, lastNewLoad->getLoadInst ());
316
- }
317
300
if (loadOwnership) {
318
301
if (*loadOwnership == LoadOwnershipQualifier::Copy) {
319
302
// Destroy the loaded value wherever the aggregate load was destroyed.
0 commit comments