1 //===-- SIMachineFunctionInfo.cpp - TODO: Add brief description -------===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // TODO: Add full description
12 //===----------------------------------------------------------------------===//
15 #include "SIMachineFunctionInfo.h"
17 #include "llvm/CodeGen/MachineFunctionPass.h"
22 SIMachineFunctionInfo::SIMachineFunctionInfo()
23 : AMDILMachineFunctionInfo(),
27 SIMachineFunctionInfo::SIMachineFunctionInfo(MachineFunction &MF)
28 : AMDILMachineFunctionInfo(MF),
34 class SIInitMachineFunctionInfoPass : public MachineFunctionPass {
41 SIInitMachineFunctionInfoPass(TargetMachine &tm) :
42 MachineFunctionPass(ID), TM(tm) { }
43 virtual bool runOnMachineFunction(MachineFunction &MF);
45 } // End anonymous namespace
47 char SIInitMachineFunctionInfoPass::ID = 0;
49 FunctionPass *llvm::createSIInitMachineFunctionInfoPass(TargetMachine &tm) {
50 return new SIInitMachineFunctionInfoPass(tm);
53 /* A MachineFunction's MachineFunctionInfo is initialized in the first call to
54 * getInfo(). We need to intialize it as an SIMachineFunctionInfo object
55 * before any of the AMDIL passes otherwise it will be an
56 * AMDILMachineFunctionInfo object and we won't be able to use it.
58 bool SIInitMachineFunctionInfoPass::runOnMachineFunction(MachineFunction &MF)
60 SIMachineFunctionInfo * MFI = MF.getInfo<SIMachineFunctionInfo>();