-/* Create a new varpool encoder. */
-
-lto_varpool_encoder_t
-lto_varpool_encoder_new (void)
-{
- lto_varpool_encoder_t encoder = XCNEW (struct lto_varpool_encoder_d);
- encoder->map = pointer_map_create ();
- encoder->initializer = pointer_set_create ();
- encoder->nodes = NULL;
- return encoder;
-}
-
-
-/* Delete ENCODER and its components. */
-
-void
-lto_varpool_encoder_delete (lto_varpool_encoder_t encoder)
-{
- VEC_free (varpool_node_ptr, heap, encoder->nodes);
- pointer_map_destroy (encoder->map);
- pointer_set_destroy (encoder->initializer);
- free (encoder);
-}
-
-
-/* Return the existing reference number of NODE in the varpool encoder in
- output block OB. Assign a new reference if this is the first time
- NODE is encoded. */
-
-int
-lto_varpool_encoder_encode (lto_varpool_encoder_t encoder,
- struct varpool_node *node)
-{
- int ref;
- void **slot;
-
- slot = pointer_map_contains (encoder->map, node);
- if (!slot)
- {
- ref = VEC_length (varpool_node_ptr, encoder->nodes);
- slot = pointer_map_insert (encoder->map, node);
- *slot = (void *) (intptr_t) ref;
- VEC_safe_push (varpool_node_ptr, heap, encoder->nodes, node);
- }
- else
- ref = (int) (intptr_t) *slot;
-
- return ref;
-}
-
-/* Look up NODE in encoder. Return NODE's reference if it has been encoded
- or LCC_NOT_FOUND if it is not there. */
-
-int
-lto_varpool_encoder_lookup (lto_varpool_encoder_t encoder,
- struct varpool_node *node)
-{
- void **slot = pointer_map_contains (encoder->map, node);
- return (slot ? (int) (intptr_t) *slot : LCC_NOT_FOUND);
-}
-
-
-/* Return the varpool node corresponding to REF using ENCODER. */
-
-struct varpool_node *
-lto_varpool_encoder_deref (lto_varpool_encoder_t encoder, int ref)
-{
- if (ref == LCC_NOT_FOUND)
- return NULL;
-
- return VEC_index (varpool_node_ptr, encoder->nodes, ref);
-}
-
-
-/* Return number of encoded nodes in ENCODER. */
-
-static int
-lto_varpool_encoder_size (lto_varpool_encoder_t encoder)
-{
- return VEC_length (varpool_node_ptr, encoder->nodes);
-}
-
-/* Return TRUE if we should encode initializer of NODE (if any). */
-
-bool
-lto_varpool_encoder_encode_initializer_p (lto_varpool_encoder_t encoder,
- struct varpool_node *node)
-{
- return pointer_set_contains (encoder->initializer, node);
-}
-
-/* Return TRUE if we should encode initializer of NODE (if any). */
-
-static void
-lto_set_varpool_encoder_encode_initializer (lto_varpool_encoder_t encoder,
- struct varpool_node *node)
-{
- pointer_set_insert (encoder->initializer, node);
-}