LLVM API Documentation

Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

PPC64ISelSimple.cpp File Reference

#include "PowerPC.h"
#include "PowerPCInstrBuilder.h"
#include "PowerPCInstrInfo.h"
#include "PPC64TargetMachine.h"
#include "llvm/Constants.h"
#include "llvm/DerivedTypes.h"
#include "llvm/Function.h"
#include "llvm/Instructions.h"
#include "llvm/Pass.h"
#include "llvm/CodeGen/IntrinsicLowering.h"
#include "llvm/CodeGen/MachineConstantPool.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/SSARegMap.h"
#include "llvm/Target/MRegisterInfo.h"
#include "llvm/Target/TargetMachine.h"
#include "llvm/Support/GetElementPtrTypeIterator.h"
#include "llvm/Support/InstVisitor.h"
#include "llvm/Support/Debug.h"
#include "llvm/ADT/Statistic.h"
#include <vector>

Include dependency graph for PPC64ISelSimple.cpp:

Go to the source code of this file.

Defines

#define DEBUG_TYPE   "isel"

Functions

static TypeClass getClass (const Type *Ty)
static TypeClass getClassB (const Type *Ty)
static AllocaInstdyn_castFixedAlloca (Value *V)
static SetCondInstcanFoldSetCCIntoBranchOrSelect (Value *V)
static GetElementPtrInstcanFoldGEPIntoLoadOrStore (Value *V)
static unsigned getSetCCNumber (unsigned Opcode)
static unsigned getPPCOpcodeForSetCCNumber (unsigned Opcode)
static BasicBlockgetBlockAfter (BasicBlock *BB)
static ValuedyncastIsNan (Value *V)
static bool isOnlyUsedByUnorderedComparisons (Value *V)
static unsigned ExactLog2 (unsigned Val)
FunctionPassllvm::createPPC64ISelSimple (TargetMachine &TM)


Define Documentation

#define DEBUG_TYPE   "isel"
 

Definition at line 10 of file PPC64ISelSimple.cpp.


Function Documentation

static GetElementPtrInst* canFoldGEPIntoLoadOrStore Value V  )  [static]
 

Definition at line 814 of file PPC64ISelSimple.cpp.

References GEPFolds.

static SetCondInst* canFoldSetCCIntoBranchOrSelect Value V  )  [static]
 

Definition at line 799 of file PPC64ISelSimple.cpp.

static AllocaInst* dyn_castFixedAlloca Value V  )  [static]
 

dyn_castFixedAlloca - If the specified value is a fixed size alloca instruction in the entry block, return it. Otherwise, return a null pointer.

Definition at line 389 of file PPC64ISelSimple.cpp.

References llvm::Function::front(), llvm::BasicBlock::getParent(), and llvm::Instruction::getParent().

static Value* dyncastIsNan Value V  )  [static]
 

dyncastIsNan - Return the operand of an isnan operation if this is an isnan.

Definition at line 1473 of file PPC64ISelSimple.cpp.

References llvm::CallInst::getCalledFunction(), llvm::Function::getIntrinsicID(), llvm::User::getOperand(), and llvm::Intrinsic::isunordered.

static unsigned ExactLog2 unsigned  Val  )  [static]
 

Definition at line 1760 of file PPC64ISelSimple.cpp.

static BasicBlock* getBlockAfter BasicBlock BB  )  [inline, static]
 

Definition at line 1185 of file PPC64ISelSimple.cpp.

References llvm::Function::end(), and llvm::BasicBlock::getParent().

static TypeClass getClass const Type Ty  )  [inline, static]
 

getClass - Turn a primitive type into a "class" number which is based on the size of the type, and whether or not it is floating point.

Definition at line 48 of file PPC64ISelSimple.cpp.

References llvm::Type::getTypeID().

static TypeClass getClassB const Type Ty  )  [inline, static]
 

Definition at line 70 of file PPC64ISelSimple.cpp.

References getClass().

static unsigned getPPCOpcodeForSetCCNumber unsigned  Opcode  )  [static]
 

Definition at line 851 of file PPC64ISelSimple.cpp.

References llvm::ISD::SetEQ, llvm::ISD::SetGE, llvm::ISD::SetGT, llvm::ISD::SetLE, llvm::ISD::SetLT, and llvm::ISD::SetNE.

static unsigned getSetCCNumber unsigned  Opcode  )  [static]
 

Definition at line 839 of file PPC64ISelSimple.cpp.

References llvm::ISD::SetEQ, llvm::ISD::SetGE, llvm::ISD::SetGT, llvm::ISD::SetLE, llvm::ISD::SetLT, and llvm::ISD::SetNE.

static bool isOnlyUsedByUnorderedComparisons Value V  )  [static]
 

isOnlyUsedByUnorderedComparisons - Return true if this value is only used by or's whos operands are all calls to the isnan predicate.

Definition at line 1483 of file PPC64ISelSimple.cpp.

References dyncastIsNan(), E, llvm::Instruction::getOpcode(), llvm::User::getOperand(), llvm::ISD::Or, llvm::Value::use_begin(), and llvm::Value::use_end().


Variable Documentation

Statistic GEPFolds("ppc64-codegen","Number of GEPs folded") [static]
 

Referenced by canFoldGEPIntoLoadOrStore().