//===-- PPCISelLowering.cpp - PPC DAG Lowering Implementation -------------===////// The LLVM Compiler Infrastructure//// This file was developed by Chris Lattner and is distributed under// the University of Illinois Open Source License. See LICENSE.TXT for details.////===----------------------------------------------------------------------===////// This file implements the PPCISelLowering class.////===----------------------------------------------------------------------===//#include"PPCISelLowering.h"#include"PPCTargetMachine.h"#include"llvm/ADT/VectorExtras.h"#include"llvm/Analysis/ScalarEvolutionExpressions.h"#include"llvm/CodeGen/MachineFrameInfo.h"#include"llvm/CodeGen/MachineFunction.h"#include"llvm/CodeGen/MachineInstrBuilder.h"#include"llvm/CodeGen/SelectionDAG.h"#include"llvm/CodeGen/SSARegMap.h"#include"llvm/Constants.h"#include"llvm/Function.h"#include"llvm/Intrinsics.h"#include"llvm/Support/MathExtras.h"#include"llvm/Target/TargetOptions.h"usingnamespacellvm;PPCTargetLowering::PPCTargetLowering(TargetMachine&TM):TargetLowering(TM){// Fold away setcc operations if possible.setSetCCIsExpensive();setPow2DivIsCheap();// Use _setjmp/_longjmp instead of setjmp/longjmp.setUseUnderscoreSetJmpLongJmp(true);// Set up the register classes.addRegisterClass(MVT::i32,PPC::GPRCRegisterClass);addRegisterClass(MVT::f32,PPC