1) It can be used to set false path between different clock paths. If we have a functional and test clock coming to MUX. we can set false path between them.
2) To optimize timing critical paths.
Are there other reasons for using generated clock?
Why do we use divide by number when defining a generated clock?
Generated clocks are used to create clocks within the design , so as to reduce extra pll or clock generators which may be needed to drive the clocks without the use of clock dividers.
Clocks are generated in DC to specify input and output port delays...
ex: If we take an input it might have delay coming from the source. So, it is used to specify the estimated time taken to arrive at your module.