Sometimes a "roof" can be accomplished using the bridging feature of the printer. Depending on your slicer and on your printer's capabilities, the filament can extend from one edge of a structure to another without using support. The slicer will "recognize" the endpoints and the distance between and speed up the travel and possibly increase the fan cooling, allowing minimal sag between points. There are resources available on many model sites to print bridging test pieces to help determine the limits of your printer.
Expect some sag on the first layer, with a reduction for each successive layer. If you have, for example, five layers for the top faces, the last of the five may cover the sag of the previous ones.
Support is commonly used when there is no opposing endpoint to handle the bridging or when the distance exceeds the capabilities of the printer.
An example of a bridging test piece can be found on Thingiverse, although there are many to be found with a simple search.