If the glass is pretty clean overall then Isopropyl Alcohol and a soft, lint-free rag. Some recommend Newspaper but I have never tried that.
If it's grime, bugs and other gunk then Bon Ami applied liberally with water.
I have done this on every vehicle I have owned and quite a few others. It will not scratch your glass and it removes everything.
As a matter of fact BMW issued a service bulletin recommending this.
BMW&BonAmi
Note: Bon Ami doesn't really recommend this:
BonAmisOfficialStatement
We saw on the internet, in auto brochures or other product information that Bon Ami® should be used to clean windshields and the Bon Ami® product label advises otherwise. Why?
Many auto enthusiasts have had success using our Bon Ami® Cleaning Powder and continue to recommend our product, however, at this time we cannot recommend using Bon Ami® Cleaning Powder for auto glass. We can and do recommend Bon Ami® Glass & Surface Cleaner, which is sold in an aerosol.
After that I always try to use RainX. Recently I drove from CO to DC with stops only for gas, food and dog walks. I was lazy and only put RainX on the driver's side of the winshield before I left. At the first stop in Kansas somewhere, I could barely see out of the passenger side windshield. The driver's side while not spotless was about 90% cleaner an dhte wipers could actually do their job.
If you apply RainX correctly then most of the time you don't even need your wipers.
When you apply it incorrectly then it does make things worse.