FLANG
RuntimeFunctions.inc
1//===-- Optimizer/Transforms/RuntimeFunctions.inc ---------------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef KNOWN_IO_FUNC
10#error "Define KNOWN_IO_FUNC before including this file"
11#endif
12#ifndef KNOWN_RUNTIME_FUNC
13#error "Define KNOWN_RUNTIME_FUNC before including this file"
14#endif
15
16// Fortran runtime functions that SetRuntimeCallAttributesPass recognizes.
17// WARNING: if you add a function entry here, you must make sure
18// that the attribute computation callbacks that end up being
19// used are correct for this function. If needed, add
20// specializations for the types that provide attribute
21// computation callbacks in SetRuntimeCallAttributesPass.
22
23// clang-format off
24KNOWN_IO_FUNC(BeginBackspace),
25KNOWN_IO_FUNC(BeginClose),
26KNOWN_IO_FUNC(BeginEndfile),
27KNOWN_IO_FUNC(BeginExternalFormattedInput),
28KNOWN_IO_FUNC(BeginExternalFormattedOutput),
29KNOWN_IO_FUNC(BeginExternalListInput),
30KNOWN_IO_FUNC(BeginExternalListOutput),
31KNOWN_IO_FUNC(BeginFlush),
32KNOWN_IO_FUNC(BeginInquireFile),
33KNOWN_IO_FUNC(BeginInquireIoLength),
34KNOWN_IO_FUNC(BeginInquireUnit),
35KNOWN_IO_FUNC(BeginInternalArrayFormattedInput),
36KNOWN_IO_FUNC(BeginInternalArrayFormattedOutput),
37KNOWN_IO_FUNC(BeginInternalArrayListInput),
38KNOWN_IO_FUNC(BeginInternalArrayListOutput),
39KNOWN_IO_FUNC(BeginInternalFormattedInput),
40KNOWN_IO_FUNC(BeginInternalFormattedOutput),
41KNOWN_IO_FUNC(BeginInternalListInput),
42KNOWN_IO_FUNC(BeginInternalListOutput),
43KNOWN_IO_FUNC(BeginOpenNewUnit),
44KNOWN_IO_FUNC(BeginOpenUnit),
45KNOWN_IO_FUNC(BeginRewind),
46KNOWN_IO_FUNC(BeginUnformattedInput),
47KNOWN_IO_FUNC(BeginUnformattedOutput),
48KNOWN_IO_FUNC(BeginWait),
49KNOWN_IO_FUNC(BeginWaitAll),
50KNOWN_IO_FUNC(CheckUnitNumberInRange128),
51KNOWN_IO_FUNC(CheckUnitNumberInRange64),
52KNOWN_IO_FUNC(EnableHandlers),
53KNOWN_IO_FUNC(EndIoStatement),
54KNOWN_IO_FUNC(GetAsynchronousId),
55KNOWN_IO_FUNC(GetIoLength),
56KNOWN_IO_FUNC(GetIoMsg),
57KNOWN_IO_FUNC(GetNewUnit),
58KNOWN_IO_FUNC(GetSize),
59KNOWN_IO_FUNC(InputAscii),
60KNOWN_IO_FUNC(InputComplex32),
61KNOWN_IO_FUNC(InputComplex64),
62KNOWN_IO_FUNC(InputDerivedType),
63KNOWN_IO_FUNC(InputDescriptor),
64KNOWN_IO_FUNC(InputInteger),
65KNOWN_IO_FUNC(InputLogical),
66KNOWN_IO_FUNC(InputNamelist),
67KNOWN_IO_FUNC(InputReal32),
68KNOWN_IO_FUNC(InputReal64),
69KNOWN_IO_FUNC(InquireCharacter),
70KNOWN_IO_FUNC(InquireInteger64),
71KNOWN_IO_FUNC(InquireLogical),
72KNOWN_IO_FUNC(InquirePendingId),
73KNOWN_IO_FUNC(OutputAscii),
74KNOWN_IO_FUNC(OutputComplex32),
75KNOWN_IO_FUNC(OutputComplex64),
76KNOWN_IO_FUNC(OutputDerivedType),
77KNOWN_IO_FUNC(OutputDescriptor),
78KNOWN_IO_FUNC(OutputInteger128),
79KNOWN_IO_FUNC(OutputInteger16),
80KNOWN_IO_FUNC(OutputInteger32),
81KNOWN_IO_FUNC(OutputInteger64),
82KNOWN_IO_FUNC(OutputInteger8),
83KNOWN_IO_FUNC(OutputLogical),
84KNOWN_IO_FUNC(OutputNamelist),
85KNOWN_IO_FUNC(OutputReal32),
86KNOWN_IO_FUNC(OutputReal64),
87KNOWN_IO_FUNC(SetAccess),
88KNOWN_IO_FUNC(SetAction),
89KNOWN_IO_FUNC(SetAdvance),
90KNOWN_IO_FUNC(SetAsynchronous),
91KNOWN_IO_FUNC(SetBlank),
92KNOWN_IO_FUNC(SetCarriagecontrol),
93KNOWN_IO_FUNC(SetConvert),
94KNOWN_IO_FUNC(SetDecimal),
95KNOWN_IO_FUNC(SetDelim),
96KNOWN_IO_FUNC(SetEncoding),
97KNOWN_IO_FUNC(SetFile),
98KNOWN_IO_FUNC(SetForm),
99KNOWN_IO_FUNC(SetPad),
100KNOWN_IO_FUNC(SetPos),
101KNOWN_IO_FUNC(SetPosition),
102KNOWN_IO_FUNC(SetRec),
103KNOWN_IO_FUNC(SetRecl),
104KNOWN_IO_FUNC(SetRound),
105KNOWN_IO_FUNC(SetSign),
106KNOWN_IO_FUNC(SetStatus)
107
108// clang-format on
109
110#undef KNOWN_IO_FUNC
111#undef KNOWN_RUNTIME_FUNC