Made some progress here. Documenting for posterity.
In the context of the LeNet example here 31, described in C++, adding the following will dump the network DAG:
    F->dumpDAG("lenet.dot");

The dumped DAG is the one that’s shown in the link above. Run the following to generate the image:
dot -Tpng -O lenet.dot

To dump the low-level IR for the compilation unit — a function at a time as I understand (is that right?) — add the following:
    // Compile for inference
    EE.compile(CompilationMode::Infer, F);
    EE.getIR().dumpDAG("lenet_infer_ir.dot");

Alternately, to dump the training graph and the IR DAG for the training network, add the following:
    // Set up training of the network
    EE.getConfig().learningRate = 0.1;
    EE.getConfig().momentum = 0;
    EE.getConfig().batchSize = minibatchSize;

    Function *TF = glow::differentiate(F, EE.getConfig());
    // Compile for training
    EE.compile(CompilationMode::Train, TF);
    TF->dumpDAG("lenet_train.dot");
    EE.getIR().dumpDAG("lenet_train_ir.dot");

-SR