LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
RuntimeLibcalls.h
Go to the documentation of this file.
1 //===-- CodeGen/RuntimeLibcalls.h - Runtime Library Calls -------*- C++ -*-===//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 //
10 // This file defines the enum representing the list of runtime library calls
11 // the backend may emit during code generation, and also some helper functions.
12 //
13 //===----------------------------------------------------------------------===//
14 
15 #ifndef LLVM_CODEGEN_RUNTIMELIBCALLS_H
16 #define LLVM_CODEGEN_RUNTIMELIBCALLS_H
17 
19 
20 namespace llvm {
21 namespace RTLIB {
22  /// RTLIB::Libcall enum - This enum defines all of the runtime library calls
23  /// the backend can emit. The various long double types cannot be merged,
24  /// because 80-bit library functions use "xf" and 128-bit use "tf".
25  ///
26  /// When adding PPCF128 functions here, note that their names generally need
27  /// to be overridden for Darwin with the xxx$LDBL128 form. See
28  /// PPCISelLowering.cpp.
29  ///
30  enum Libcall {
31  // Integer
84 
85  // FLOATING POINT
206 
207  // CONVERSION
288 
289  // COMPARISON
314 
315  // MEMORY
319 
320  // EXCEPTION HANDLING
322 
323  // Family ATOMICs
384 
385  // Stack Protector Fail.
387 
389  };
390 
391  /// getFPEXT - Return the FPEXT_*_* value for the given types, or
392  /// UNKNOWN_LIBCALL if there is none.
393  Libcall getFPEXT(EVT OpVT, EVT RetVT);
394 
395  /// getFPROUND - Return the FPROUND_*_* value for the given types, or
396  /// UNKNOWN_LIBCALL if there is none.
397  Libcall getFPROUND(EVT OpVT, EVT RetVT);
398 
399  /// getFPTOSINT - Return the FPTOSINT_*_* value for the given types, or
400  /// UNKNOWN_LIBCALL if there is none.
401  Libcall getFPTOSINT(EVT OpVT, EVT RetVT);
402 
403  /// getFPTOUINT - Return the FPTOUINT_*_* value for the given types, or
404  /// UNKNOWN_LIBCALL if there is none.
405  Libcall getFPTOUINT(EVT OpVT, EVT RetVT);
406 
407  /// getSINTTOFP - Return the SINTTOFP_*_* value for the given types, or
408  /// UNKNOWN_LIBCALL if there is none.
409  Libcall getSINTTOFP(EVT OpVT, EVT RetVT);
410 
411  /// getUINTTOFP - Return the UINTTOFP_*_* value for the given types, or
412  /// UNKNOWN_LIBCALL if there is none.
413  Libcall getUINTTOFP(EVT OpVT, EVT RetVT);
414 }
415 }
416 
417 #endif
Libcall getFPROUND(EVT OpVT, EVT RetVT)
Libcall getUINTTOFP(EVT OpVT, EVT RetVT)
Libcall getFPTOSINT(EVT OpVT, EVT RetVT)
Libcall getFPEXT(EVT OpVT, EVT RetVT)
Libcall getFPTOUINT(EVT OpVT, EVT RetVT)
Libcall getSINTTOFP(EVT OpVT, EVT RetVT)