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
>();