diff options
author | Chris Lattner <sabre@nondot.org> | 2005-05-06 19:59:08 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2005-05-06 19:59:08 +0000 |
commit | a62e52ab181c10738066e65a6dcc6c3cdfa5d806 (patch) | |
tree | 1a47af94a41abfb5f2c94102928445e72d282055 /include/llvm/CallingConv.h | |
parent | f924a4c21fd34386015ca42628d3648b908102d0 (diff) | |
download | external_llvm-a62e52ab181c10738066e65a6dcc6c3cdfa5d806.zip external_llvm-a62e52ab181c10738066e65a6dcc6c3cdfa5d806.tar.gz external_llvm-a62e52ab181c10738066e65a6dcc6c3cdfa5d806.tar.bz2 |
New file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21744 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/CallingConv.h')
-rw-r--r-- | include/llvm/CallingConv.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/include/llvm/CallingConv.h b/include/llvm/CallingConv.h new file mode 100644 index 0000000..6da5482 --- /dev/null +++ b/include/llvm/CallingConv.h @@ -0,0 +1,54 @@ +//===-- llvm/CallingConv.h - LLVM Calling Conventions -----------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file was developed by the LLVM research group and is distributed under +// the University of Illinois Open Source License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file defines a set of enums which specify the assigned numeric values +// for known llvm calling conventions. +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_CALLINGCONV_H +#define LLVM_CALLINGCONV_H + +namespace llvm { + +/// CallingConv Namespace - This namespace contains an enum with a value for +/// the well-known calling conventions. +/// +namespace CallingConv { + enum ID { + // C - The default llvm calling convention, compatible with C. This + // convention is the only calling convention that supports varargs calls. + // As with typical C calling conventions, the callee/caller have to tolerate + // certain amounts of prototype mismatch. + C = 0, + + + // Generic LLVM calling conventions. None of these calling conventions + // support varargs calls, and all assume that the caller and callee + // prototype exactly match. + + // Fast - This calling convention attempts to make calls as fast as possible + // (e.g. by passing things in registers). + Fast = 8, + + // Cold - This calling convention attempts to make code in the caller as + // efficient as possible under the assumption that the call is not commonly + // executed. As such, these calls often preserve all registers so that the + // call does not break any live ranges in the caller side. + Cold = 9, + + // Target - This is the start of the target-specific calling conventions, + // e.g. fastcall and thiscall on X86. + FirstTargetCC = 64, + }; +} // End CallingConv namespace + +} // End llvm namespace + +#endif |