blob: 1096b1635c75d500b505dae9783d3ada2676b787 [file] [log] [blame]
Dan Gohmanf17a25c2007-07-18 16:29:46 +00001//==-- llvm/Target/TargetSubtarget.h - Target Information --------*- C++ -*-==//
2//
3// The LLVM Compiler Infrastructure
4//
Chris Lattner84e66db2007-12-29 19:59:42 +00005// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
Dan Gohmanf17a25c2007-07-18 16:29:46 +00007//
8//===----------------------------------------------------------------------===//
9//
10// This file describes the subtarget options of a Target machine.
11//
12//===----------------------------------------------------------------------===//
13
14#ifndef LLVM_TARGET_TARGETSUBTARGET_H
15#define LLVM_TARGET_TARGETSUBTARGET_H
16
17namespace llvm {
18
19//===----------------------------------------------------------------------===//
20///
21/// TargetSubtarget - Generic base class for all target subtargets. All
22/// Target-specific options that control code generation and printing should
23/// be exposed through a TargetSubtarget-derived class.
24///
25class TargetSubtarget {
26 TargetSubtarget(const TargetSubtarget&); // DO NOT IMPLEMENT
27 void operator=(const TargetSubtarget&); // DO NOT IMPLEMENT
28protected: // Can only create subclasses...
29 TargetSubtarget();
30public:
Rafael Espindoladd867c72007-11-05 23:12:20 +000031 /// getMaxInlineSizeThreshold - Returns the maximum memset / memcpy size
32 /// that still makes it profitable to inline the call.
33 virtual unsigned getMaxInlineSizeThreshold() const {return 0; }
Dan Gohmanf17a25c2007-07-18 16:29:46 +000034 virtual ~TargetSubtarget();
35};
36
37} // End llvm namespace
38
39#endif