LLVM API Documentation
00001 //==-- llvm/Target/TargetSubtarget.h - Target Information --------*- C++ -*-==// 00002 // 00003 // The LLVM Compiler Infrastructure 00004 // 00005 // This file is distributed under the University of Illinois Open Source 00006 // License. See LICENSE.TXT for details. 00007 // 00008 //===----------------------------------------------------------------------===// 00009 // 00010 // This file describes the subtarget options of a Target machine. 00011 // 00012 //===----------------------------------------------------------------------===// 00013 00014 #ifndef LLVM_TARGET_TARGETSUBTARGET_H 00015 #define LLVM_TARGET_TARGETSUBTARGET_H 00016 00017 namespace llvm { 00018 00019 //===----------------------------------------------------------------------===// 00020 /// 00021 /// TargetSubtarget - Generic base class for all target subtargets. All 00022 /// Target-specific options that control code generation and printing should 00023 /// be exposed through a TargetSubtarget-derived class. 00024 /// 00025 class TargetSubtarget { 00026 TargetSubtarget(const TargetSubtarget&); // DO NOT IMPLEMENT 00027 void operator=(const TargetSubtarget&); // DO NOT IMPLEMENT 00028 protected: // Can only create subclasses... 00029 TargetSubtarget(); 00030 public: 00031 virtual ~TargetSubtarget(); 00032 00033 /// getSpecialAddressLatency - For targets where it is beneficial to 00034 /// backschedule instructions that compute addresses, return a value 00035 /// indicating the number of scheduling cycles of backscheduling that 00036 /// should be attempted. 00037 virtual unsigned getSpecialAddressLatency() const { return 0; } 00038 }; 00039 00040 } // End llvm namespace 00041 00042 #endif
This web site is hosted by the Computer Science Department at the University of Illinois at Urbana-Champaign.