Skip to content

The AutodiffClosureSpecialization pass creates SIL with invalid ownership when enabling OSSA modules #78847

Closed
@eeckstein

Description

@eeckstein

Description

When running the test AutoDiff/validation-test/array.swift in optimize mode, the compiler crashes with

Begin Error in Function: '$sSa16_DifferentiationAA14DifferentiableRzlE0B4ViewVyADySf_G_GA2FIeggoo_TJSpSSUpSrUSUP07$sSa16_a4AA14b47RzlE15_vjpConcatenateySayxG5value_SaA2aBRzlE0B4c54Vy13TangentVectorQz_G_AJtAJc8pullbacktAD_ADtFZAKL_yAJ_v3AjaO11FSaySfG_Tg5SaySaySfGGAITf1nc_n'
Found over consume?!
Value:   %4 = partial_apply [callee_guaranteed] %3(%1, %2) : $@convention(thin) (@guaranteed Array<Array<Float>.DifferentiableView>.DifferentiableView, @guaranteed Array<Array<Float>>, @guaranteed Array<Array<Float>>) -> (@owned Array<Array<Float>.DifferentiableView>.DifferentiableView, @owned Array<Array<Float>.DifferentiableView>.DifferentiableView) // users: %11, %6
User:   %6 = partial_apply [callee_guaranteed] %5(%4) : $@convention(thin) (@guaranteed Array<Array<Float>.DifferentiableView>.DifferentiableView, @guaranteed @callee_guaranteed (@guaranteed Array<Array<Float>.DifferentiableView>.DifferentiableView) -> (@owned Array<Array<Float>.DifferentiableView>.DifferentiableView, @owned Array<Array<Float>.DifferentiableView>.DifferentiableView)) -> (@owned Array<Array<Float>.DifferentiableView>.DifferentiableView, @owned Array<Array<Float>.DifferentiableView>.DifferentiableView) // users: %12, %7
Block: bb0
Consuming Users:
  destroy_value %4 : $@callee_guaranteed (@guaranteed Array<Array<Float>.DifferentiableView>.DifferentiableView) -> (@owned Array<Array<Float>.DifferentiableView>.DifferentiableView, @owned Array<Array<Float>.DifferentiableView>.DifferentiableView) // id: %11
  %6 = partial_apply [callee_guaranteed] %5(%4) : $@convention(thin) (@guaranteed Array<Array<Float>.DifferentiableView>.DifferentiableView, @guaranteed @callee_guaranteed (@guaranteed Array<Array<Float>.DifferentiableView>.DifferentiableView) -> (@owned Array<Array<Float>.DifferentiableView>.DifferentiableView, @owned Array<Array<Float>.DifferentiableView>.DifferentiableView)) -> (@owned Array<Array<Float>.DifferentiableView>.DifferentiableView, @owned Array<Array<Float>.DifferentiableView>.DifferentiableView) // users: %12, %7

Reproduction

  • Enable OSSA modules, e.g. by cherry-picking cb4db5a
  • Run the test AutoDiff/validation-test/array.swift in optimized mode, e.g. with ninja check-swift-optimize

Expected behavior

no crash

Environment

Additional information

No response

Metadata

Metadata

Assignees

Labels

AutoDiffSIL ownershipArea → compiler → SIL: SIL ownershipSILOptimizerArea → compiler: SIL optimization passesbugA deviation from expected or documented behavior. Also: expected but undesirable behavior.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions