code: def constant_propagation(block, silence_unexpected_net_warnings=False):
      
      net_count = _NetCount(block)
      while net_count.shrinking():
          _constant_prop_pass(block, silence_unexpected_net_warnings)
docs: Removes excess constants in the block.
  
      Note on resulting block:
      The output of the block can have wirevectors that are driven but not
      listened to. This is to be expected. These are to be removed by the
      _remove_unlistened_nets function