message: Implement some traits for FunctionCx
diff: +extern crate rustc_target;
  +
  use syntax::ast::{IntTy, UintTy};
  +use self::rustc_target::spec::{HasTargetSpec, Target};
  use cretonne_module::{Module, Linkage, FuncId};
  @@ -277,6 +280,24 @@ fn layout_of(self, ty: Ty<'tcx>) -> TyLayout<'tcx> {
  }
  }
  +impl<'a, 'tcx> layout::HasTyCtxt<'tcx> for &'a FunctionCx<'a, 'tcx> {
  + fn tcx<'b>(&'b self) -> TyCtxt<'b, 'tcx, 'tcx> {
  + self.tcx
  + }
  +}
  +
  +impl<'a, 'tcx> layout::HasDataLayout for &'a FunctionCx<'a, 'tcx> {
  + fn data_layout(&self) -> &layout::TargetDataLayout {
  + &self.tcx.data_layout
  + }
  +}
  +
  +impl<'a, 'tcx> HasTargetSpec for &'a FunctionCx<'a, 'tcx> {
  + fn target_spec(&self) -> &Target {
  + &self.tcx.sess.target.target
  + }
  +}
  +
  impl<'f, 'tcx> FunctionCx<'f, 'tcx> {
  pub fn monomorphize<T>(&self, value: &T) -> T
  where T: TypeFoldable<'tcx>
  