Per Richard's request here:
This patch essentially reverses all the changes from the following commit: https://reviews.llvm.org/rL264513 for the branch_3.9.
[This is my first time submitting 'pull requests' for a specific branch. I checked-out the respective release branches for llvm and clang, and reverted the above commit (resolved a conflict in the process) and created a patch. My box is currently still compiling and running regression tests (will update the revision within the next two hours if any revisions need to be made). Please let me know if I should be doing anything different]