PPCSubtarget.h revision d401dff7966ca3ac644cddcda4f1e6d30074923e
1//=====-- PowerPCSubtarget.h - Define Subtarget for the PPC ---*- C++ -*--====// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file was developed by Nate Begeman and is distributed under the 6// University of Illinois Open Source License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9// 10// This file declares the X86 specific subclass of TargetSubtarget. 11// 12//===----------------------------------------------------------------------===// 13 14#ifndef POWERPCSUBTARGET_H 15#define POWERPCSUBTARGET_H 16 17#include "llvm/Target/TargetSubtarget.h" 18 19#include <string> 20 21namespace llvm { 22class Module; 23 24class PPCSubtarget : public TargetSubtarget { 25protected: 26 /// stackAlignment - The minimum alignment known to hold of the stack frame on 27 /// entry to the function and which must be maintained by every function. 28 unsigned StackAlignment; 29 30 /// Used by the ISel to turn in optimizations for POWER4-derived architectures 31 bool IsGigaProcessor; 32 bool Is64Bit; 33 bool HasFSQRT; 34 bool IsAIX; 35 bool IsDarwin; 36public: 37 /// This constructor initializes the data members to match that 38 /// of the specified module. 39 /// 40 PPCSubtarget(const Module &M, const std::string &FS); 41 42 /// getStackAlignment - Returns the minimum alignment known to hold of the 43 /// stack frame on entry to the function and which must be maintained by every 44 /// function for this subtarget. 45 unsigned getStackAlignment() const { return StackAlignment; } 46 47 bool hasFSQRT() const { return HasFSQRT; } 48 49 bool isAIX() const { return IsAIX; } 50 bool isDarwin() const { return IsDarwin; } 51 bool is64Bit() const { return Is64Bit; } 52 bool isGigaProcessor() const { return IsGigaProcessor; } 53}; 54} // End llvm namespace 55 56#endif 57