/* syn_keep = 1 */
next to a wire will force it to survive optimization!
I'm not sure about the specifics, but I do know is that it saved our project at the last minute, and it very may well save yours too!
Keep in mind, however, that more than likely there's a reason that Xilinx wants to kill your wires. You probably have other problems somewhere in your code (did you check for latches?). Also, keep in mind that this comment must be put next to each wire that you want to survive, not just at the end of a long declaration with many wires.
Happy coding!