Combinatory logic has rather unpredictable delays, so it is not good for clock generation as you'll get jitter. If your design is slow, it might be Ok.
It may be possible to remove some of the clock edges by dynamically enabling/disabling a clock buffer, but it will not work with very fast clocks neither, and the clock you get will have a weird duty cycle. Similarly, you can use CE in your target areas.
The best way is to use the elements specifically designed to work with clocks, such as PLL. Xilinx has dedicated clock dividers - BUFR, which will work very well too.