This is part of the work to remove TargetMachine::resetTargetOptions.
In this patch, instead of updating global variable TargetOptions::NoFramePointerElim in resetTargetOptions, its use in DisableFramePointerElim is replaced with calls to TargetOptions::noFramePointerElim and TargetFrameLowering::noFramePointerElim. These functions determine on a per-function basis if frame pointer elimination should be disabled.
There is no change in functionality except that cl:opt option "disable-fp-elim" can now override function attribute "no-frame-pointer-elim". I removed the option from test case 2014-08-29-CompactUnwind.ll to prevent it from changing the output (it had no effect previously, but with this patch, it overrides the function attribute).