LLVM API Documentation

LevelRaise.cpp File Reference

#include "llvm/Transforms/Scalar.h"
#include "llvm/Transforms/Utils/Local.h"
#include "TransformInternals.h"
#include "llvm/Instructions.h"
#include "llvm/Pass.h"
#include "llvm/Transforms/Utils/BasicBlockUtils.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Debug.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/ADT/STLExtras.h"
#include <algorithm>
#include <iostream>

Include dependency graph for LevelRaise.cpp:

Go to the source code of this file.

Defines

#define PRINT_PEEPHOLE(ID, NUM, I)   DEBUG(std::cerr << "Inst P/H " << ID << "[" << NUM << "] " << I)
#define PRINT_PEEPHOLE1(ID, I1)   do { PRINT_PEEPHOLE(ID, 0, I1); } while (0)
#define PRINT_PEEPHOLE2(ID, I1, I2)   do { PRINT_PEEPHOLE(ID, 0, I1); PRINT_PEEPHOLE(ID, 1, I2); } while (0)
#define PRINT_PEEPHOLE3(ID, I1, I2, I3)
#define PRINT_PEEPHOLE4(ID, I1, I2, I3, I4)

Functions

FunctionPassllvm::createRaisePointerReferencesPass ()
static bool isReinterpretingCast (const CastInst *CI)

Variables

static cl::opt< std::string > StartInst ("raise-start-inst", cl::Hidden, cl::value_desc("inst name"), cl::desc("Start raise pass at the instruction with the specified name"))
static Statistic NumLoadStorePeepholes ("raise","Number of load/store peepholes")
static Statistic NumGEPInstFormed ("raise","Number of other getelementptr's formed")
static Statistic NumExprTreesConv ("raise","Number of expression trees converted")
static Statistic NumCastOfCast ("raise","Number of cast-of-self removed")
static Statistic NumDCEorCP ("raise","Number of insts DCEd or constprop'd")
static Statistic NumVarargCallChanges ("raise","Number of vararg call peepholes")
RegisterOpt< RPR > X ("raise","Raise Pointer References")


Define Documentation

#define PRINT_PEEPHOLE ( ID,
NUM,
 )     DEBUG(std::cerr << "Inst P/H " << ID << "[" << NUM << "] " << I)

Definition at line 56 of file LevelRaise.cpp.

#define PRINT_PEEPHOLE1 ( ID,
I1   )     do { PRINT_PEEPHOLE(ID, 0, I1); } while (0)

Definition at line 59 of file LevelRaise.cpp.

#define PRINT_PEEPHOLE2 ( ID,
I1,
I2   )     do { PRINT_PEEPHOLE(ID, 0, I1); PRINT_PEEPHOLE(ID, 1, I2); } while (0)

Definition at line 60 of file LevelRaise.cpp.

#define PRINT_PEEPHOLE3 ( ID,
I1,
I2,
I3   ) 

Value:

do { PRINT_PEEPHOLE(ID, 0, I1); PRINT_PEEPHOLE(ID, 1, I2); \
       PRINT_PEEPHOLE(ID, 2, I3); } while (0)

Definition at line 62 of file LevelRaise.cpp.

#define PRINT_PEEPHOLE4 ( ID,
I1,
I2,
I3,
I4   ) 

Value:

do { PRINT_PEEPHOLE(ID, 0, I1); PRINT_PEEPHOLE(ID, 1, I2); \
       PRINT_PEEPHOLE(ID, 2, I3); PRINT_PEEPHOLE(ID, 3, I4); } while (0)

Definition at line 65 of file LevelRaise.cpp.


Function Documentation

static bool isReinterpretingCast ( const CastInst CI  )  [inline, static]

Definition at line 96 of file LevelRaise.cpp.

References llvm::UnaryInstruction::getOperand(), llvm::Value::getType(), and llvm::Type::isLosslesslyConvertibleTo().


Variable Documentation

Statistic NumCastOfCast("raise","Number of cast-of-self removed") [static]

Statistic NumDCEorCP("raise","Number of insts DCEd or constprop'd") [static]

Statistic NumExprTreesConv("raise","Number of expression trees converted") [static]

Statistic NumGEPInstFormed("raise","Number of other getelementptr's formed") [static]

Statistic NumLoadStorePeepholes("raise","Number of load/store peepholes") [static]

Statistic NumVarargCallChanges("raise","Number of vararg call peepholes") [static]

cl::opt<std::string> StartInst("raise-start-inst", cl::Hidden, cl::value_desc("inst name"), cl::desc("Start raise pass at the instruction with the specified name")) [static]

RegisterOpt<RPR> X("raise","Raise Pointer References") [static]