Go to the previous, next section.

Unregistered Annotations

If an annotation name is not registered with the manager, the format of the annotation data is unknown. Such annotations cannot be written to the SUIF output file, and when they are printed the data is just shown as a hexadecimal value. If the data needs to be deallocated, you must do so explicitly before the annotations are deleted. The library cannot automatically update the data in unregistered annotations, and the cloning functions do not copy them. The immeds method returns NULL for unregistered annotations and set_immeds will not work at all for them.

Due to these limitations, annotations should generally be registered with the manager. There are, however, many situations where unregistered annotations are useful. Because they are not written out, the data in these annotations does not have to be converted to immed lists. This means that they may contain totally arbitrary data structures. The drawback is that it is entirely up to you to ensure that the annotation data is maintained properly.

Go to the previous, next section.