1//===- LocalStackSlotAllocation.cpp - Pre-allocate locals to stack slots --===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9// 10// This pass assigns local frame indices to stack slots relative to one another 11// and allocates additional base registers to access them when the target 12// estimates they are likely to be out of range of stack pointer and frame 13// pointer relative addressing. 14// 15//===----------------------------------------------------------------------===// 16 17#define DEBUG_TYPE "localstackalloc"
| 1//===- LocalStackSlotAllocation.cpp - Pre-allocate locals to stack slots --===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9// 10// This pass assigns local frame indices to stack slots relative to one another 11// and allocates additional base registers to access them when the target 12// estimates they are likely to be out of range of stack pointer and frame 13// pointer relative addressing. 14// 15//===----------------------------------------------------------------------===// 16 17#define DEBUG_TYPE "localstackalloc"
|
18#include "llvm/Constants.h" 19#include "llvm/DerivedTypes.h" 20#include "llvm/Instructions.h" 21#include "llvm/Intrinsics.h" 22#include "llvm/LLVMContext.h" 23#include "llvm/Module.h" 24#include "llvm/Pass.h"
| 18#include "llvm/CodeGen/Passes.h" 19#include "llvm/ADT/STLExtras.h"
|
25#include "llvm/ADT/SmallSet.h" 26#include "llvm/ADT/Statistic.h"
| 20#include "llvm/ADT/SmallSet.h" 21#include "llvm/ADT/Statistic.h"
|
27#include "llvm/ADT/STLExtras.h"
| |
28#include "llvm/CodeGen/MachineFrameInfo.h" 29#include "llvm/CodeGen/MachineFunction.h" 30#include "llvm/CodeGen/MachineFunctionPass.h" 31#include "llvm/CodeGen/MachineRegisterInfo.h"
| 22#include "llvm/CodeGen/MachineFrameInfo.h" 23#include "llvm/CodeGen/MachineFunction.h" 24#include "llvm/CodeGen/MachineFunctionPass.h" 25#include "llvm/CodeGen/MachineRegisterInfo.h"
|
32#include "llvm/CodeGen/Passes.h"
| 26#include "llvm/IR/Constants.h" 27#include "llvm/IR/DerivedTypes.h" 28#include "llvm/IR/Instructions.h" 29#include "llvm/IR/Intrinsics.h" 30#include "llvm/IR/LLVMContext.h" 31#include "llvm/IR/Module.h" 32#include "llvm/Pass.h"
|
33#include "llvm/Support/Debug.h" 34#include "llvm/Support/ErrorHandling.h" 35#include "llvm/Support/raw_ostream.h"
| 33#include "llvm/Support/Debug.h" 34#include "llvm/Support/ErrorHandling.h" 35#include "llvm/Support/raw_ostream.h"
|
36#include "llvm/Target/TargetRegisterInfo.h"
| |
37#include "llvm/Target/TargetFrameLowering.h"
| 36#include "llvm/Target/TargetFrameLowering.h"
|
| 37#include "llvm/Target/TargetRegisterInfo.h"
|
38 39using namespace llvm; 40 41STATISTIC(NumAllocations, "Number of frame indices allocated into local block"); 42STATISTIC(NumBaseRegisters, "Number of virtual frame base registers allocated"); 43STATISTIC(NumReplacements, "Number of frame indices references replaced"); 44 45namespace {
--- 311 unchanged lines hidden --- | 38 39using namespace llvm; 40 41STATISTIC(NumAllocations, "Number of frame indices allocated into local block"); 42STATISTIC(NumBaseRegisters, "Number of virtual frame base registers allocated"); 43STATISTIC(NumReplacements, "Number of frame indices references replaced"); 44 45namespace {
--- 311 unchanged lines hidden --- |