コード例 #1
0
TargetAsmInfo::TargetAsmInfo(const TargetMachine &TM) {
  TLOF = &TM.getTargetLowering()->getObjFileLowering();
  const TargetData &TD = *TM.getTargetData();
  IsLittleEndian = TD.isLittleEndian();
  PointerSize = TD.getPointerSize();
  const TargetFrameInfo &TFI = *TM.getFrameInfo();
  StackDir = TFI.getStackGrowthDirection();
  TRI = TM.getRegisterInfo();
  TFI.getInitialFrameState(InitialFrameState);
}
コード例 #2
0
MachineFunction::MachineFunction(const Function *F, const TargetMachine &TM,
                                 unsigned FunctionNum, MachineModuleInfo &mmi)
  : Fn(F), Target(TM), Ctx(mmi.getContext()), MMI(mmi) {
  if (TM.getRegisterInfo())
    RegInfo = new (Allocator) MachineRegisterInfo(*TM.getRegisterInfo());
  else
    RegInfo = 0;
  MFInfo = 0;
  FrameInfo = new (Allocator) MachineFrameInfo(*TM.getFrameInfo());
  if (Fn->hasFnAttr(Attribute::StackAlignment))
    FrameInfo->setMaxAlignment(Attribute::getStackAlignmentFromAttrs(
        Fn->getAttributes().getFnAttributes()));
  ConstantPool = new (Allocator) MachineConstantPool(TM.getTargetData());
  Alignment = TM.getTargetLowering()->getFunctionAlignment(F);
  FunctionNumber = FunctionNum;
  JumpTableInfo = 0;
}