LLVM  9.0.0svn
PPCMachineFunctionInfo.cpp
Go to the documentation of this file.
1 //===-- PPCMachineFunctionInfo.cpp - Private data used for PowerPC --------===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
10 #include "llvm/ADT/Twine.h"
11 #include "llvm/IR/DataLayout.h"
12 #include "llvm/MC/MCContext.h"
13 
14 using namespace llvm;
15 
16 void PPCFunctionInfo::anchor() {}
17 
19  const DataLayout &DL = MF.getDataLayout();
21  Twine(MF.getFunctionNumber()) +
22  "$poff");
23 }
24 
26  const DataLayout &DL = MF.getDataLayout();
28  "func_gep" +
29  Twine(MF.getFunctionNumber()));
30 }
31 
33  const DataLayout &DL = MF.getDataLayout();
35  "func_lep" +
36  Twine(MF.getFunctionNumber()));
37 }
38 
40  const DataLayout &DL = MF.getDataLayout();
42  "func_toc" +
43  Twine(MF.getFunctionNumber()));
44 }
45 
46 bool PPCFunctionInfo::isLiveInSExt(unsigned VReg) const {
47  for (const std::pair<unsigned, ISD::ArgFlagsTy> &LiveIn : LiveInAttrs)
48  if (LiveIn.first == VReg)
49  return LiveIn.second.isSExt();
50  return false;
51 }
52 
53 bool PPCFunctionInfo::isLiveInZExt(unsigned VReg) const {
54  for (const std::pair<unsigned, ISD::ArgFlagsTy> &LiveIn : LiveInAttrs)
55  if (LiveIn.first == VReg)
56  return LiveIn.second.isZExt();
57  return false;
58 }
A parsed version of the target data layout string in and methods for querying it. ...
Definition: DataLayout.h:110
MCSymbol * getGlobalEPSymbol() const
unsigned getFunctionNumber() const
getFunctionNumber - Return a unique ID for the current function.
This class represents lattice values for constants.
Definition: AllocatorList.h:23
StringRef getPrivateGlobalPrefix() const
Definition: DataLayout.h:316
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
Definition: MCSymbol.h:41
Twine - A lightweight data structure for efficiently representing the concatenation of temporary valu...
Definition: Twine.h:80
MCSymbol * getTOCOffsetSymbol() const
const DataLayout & getDataLayout() const
Return the DataLayout attached to the Module associated to this MF.
MCContext & getContext() const
bool isLiveInSExt(unsigned VReg) const
This function returns true if the specified vreg is a live-in register and sign-extended.
MCSymbol * getPICOffsetSymbol() const
MCSymbol * getOrCreateSymbol(const Twine &Name)
Lookup the symbol inside with the specified Name.
Definition: MCContext.cpp:123
MCSymbol * getLocalEPSymbol() const
bool isLiveInZExt(unsigned VReg) const
This function returns true if the specified vreg is a live-in register and zero-extended.