Forum Discussion
I wouldn't start randomly doing noprunes or anything like that. The analysis & synthesis messages state every cell removed and why, but it's not overly useful. If you have one register removed because you forgot to hook up its input(maybe a typo), and because it gets removed another 9,000 registers get removed because their input is tied off, then you have 9,001 messages about FFs removed. (That's a worst case scenario that they're all the same message, but you get the idea.) I believe the messages do occur in order though, so in this case the first one should be the one you care about and then 9,000 more. The problem is when you have a decent amount of logic that should get removed, as those messages may come before the stuff you're interested in.
The Analysis & Synthesis Report has section called something like Registers Removed Causing Further Reductions(or something similar, I can't remember). The purpose of this goal is to try and group them better for the reasons mentioned above. One other thing to try is to make a copy of your project, then right-click on a top-level hierarchy and Set as Top-level Entity(or go to Assignments -> Settings -> General and type the top-level in there) and just start synthesizing(no need to fit) sub-hierarchies and see what size they come in at. Probably start with reset logic or something like that, since I'm guessing that's the issue. (Heck, try disabling Power-Up Don't Care under Assginments -> Settings -> Analysis & Synthesis. I've only seen this help once, but it's possible.) My experience is the reduction is always a valid reason, just not something you expect. Good luck.