aboutsummaryrefslogtreecommitdiffstats
path: root/src/ortho/llvm/llvm-transforms-scalar.ads
blob: 0f23ce87e5bceb794532ee9f363e3f70f95179a5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
--  LLVM binding
--  Copyright (C) 2014 Tristan Gingold
--
--  GHDL is free software; you can redistribute it and/or modify it under
--  the terms of the GNU General Public License as published by the Free
--  Software Foundation; either version 2, or (at your option) any later
--  version.
--
--  GHDL is distributed in the hope that it will be useful, but WITHOUT ANY
--  WARRANTY; without even the implied warranty of MERCHANTABILITY or
--  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
--  for more details.
--
--  You should have received a copy of the GNU General Public License
--  along with GHDL; see the file COPYING.  If not, write to the Free
--  Software Foundation, 59 Temple Place - Suite 330, Boston, MA
--  02111-1307, USA.
with LLVM.Core; use LLVM.Core;

package LLVM.Transforms.Scalar is
   --  See llvm::createAggressiveDCEPass function.
   procedure AddAggressiveDCEPass(PM : PassManagerRef);
   pragma Import (C, AddAggressiveDCEPass, "LLVMAddAggressiveDCEPass");

   --  See llvm::createCFGSimplificationPass function.
   procedure AddCFGSimplificationPass(PM : PassManagerRef);
   pragma Import (C, AddCFGSimplificationPass, "LLVMAddCFGSimplificationPass");

   --  See llvm::createDeadStoreEliminationPass function.
   procedure AddDeadStoreEliminationPass(PM : PassManagerRef);
   pragma Import (C, AddDeadStoreEliminationPass,
                  "LLVMAddDeadStoreEliminationPass");

   --  See llvm::createScalarizerPass function.
   procedure AddScalarizerPass(PM : PassManagerRef);
   pragma Import (C, AddScalarizerPass, "LLVMAddScalarizerPass");

   --  See llvm::createGVNPass function.
   procedure AddGVNPass(PM : PassManagerRef);
   pragma Import (C, AddGVNPass, "LLVMAddGVNPass");

   --  See llvm::createIndVarSimplifyPass function.
   procedure AddIndVarSimplifyPass(PM : PassManagerRef);
   pragma Import (C, AddIndVarSimplifyPass, "LLVMAddIndVarSimplifyPass");

   --  See llvm::createInstructionCombiningPass function.
   procedure AddInstructionCombiningPass(PM : PassManagerRef);
   pragma Import (C, AddInstructionCombiningPass,
                  "LLVMAddInstructionCombiningPass");

   --  See llvm::createJumpThreadingPass function.
   procedure AddJumpThreadingPass(PM : PassManagerRef);
   pragma Import (C, AddJumpThreadingPass, "LLVMAddJumpThreadingPass");

   --  See llvm::createLICMPass function.
   procedure AddLICMPass(PM : PassManagerRef);
   pragma Import (C, AddLICMPass, "LLVMAddLICMPass");

   --  See llvm::createLoopDeletionPass function.
   procedure AddLoopDeletionPass(PM : PassManagerRef);
   pragma Import (C, AddLoopDeletionPass, "LLVMAddLoopDeletionPass");

   --  See llvm::createLoopIdiomPass function
   procedure AddLoopIdiomPass(PM : PassManagerRef);
   pragma Import (C, AddLoopIdiomPass, "LLVMAddLoopIdiomPass");

   --  See llvm::createLoopRotatePass function.
   procedure AddLoopRotatePass(PM : PassManagerRef);
   pragma Import (C, AddLoopRotatePass, "LLVMAddLoopRotatePass");

   --  See llvm::createLoopRerollPass function.
   procedure AddLoopRerollPass(PM : PassManagerRef);
   pragma Import (C, AddLoopRerollPass, "LLVMAddLoopRerollPass");

   --  See llvm::createLoopUnrollPass function.
   procedure AddLoopUnrollPass(PM : PassManagerRef);
   pragma Import (C, AddLoopUnrollPass, "LLVMAddLoopUnrollPass");

   --  See llvm::createLoopUnswitchPass function.
   procedure AddLoopUnswitchPass(PM : PassManagerRef);
   pragma Import (C, AddLoopUnswitchPass, "LLVMAddLoopUnswitchPass");

   --  See llvm::createMemCpyOptPass function.
   procedure AddMemCpyOptPass(PM : PassManagerRef);
   pragma Import (C, AddMemCpyOptPass, "LLVMAddMemCpyOptPass");

   --  See llvm::createPartiallyInlineLibCallsPass function.
   procedure AddPartiallyInlineLibCallsPass(PM : PassManagerRef);
   pragma Import (C, AddPartiallyInlineLibCallsPass,
                  "LLVMAddPartiallyInlineLibCallsPass");

   --  See llvm::createPromoteMemoryToRegisterPass function.
   procedure AddPromoteMemoryToRegisterPass(PM : PassManagerRef);
   pragma Import (C, AddPromoteMemoryToRegisterPass,
                  "LLVMAddPromoteMemoryToRegisterPass");

   --  See llvm::createReassociatePass function.
   procedure AddReassociatePass(PM : PassManagerRef);
   pragma Import (C, AddReassociatePass, "LLVMAddReassociatePass");

   --  See llvm::createSCCPPass function.
   procedure AddSCCPPass(PM : PassManagerRef);
   pragma Import (C, AddSCCPPass, "LLVMAddSCCPPass");

   --  See llvm::createScalarReplAggregatesPass function.
   procedure AddScalarReplAggregatesPass(PM : PassManagerRef);
   pragma Import (C, AddScalarReplAggregatesPass,
                  "LLVMAddScalarReplAggregatesPass");

   --  See llvm::createScalarReplAggregatesPass function.
   procedure AddScalarReplAggregatesPassSSA(PM : PassManagerRef);
   pragma Import (C, AddScalarReplAggregatesPassSSA,
                  "LLVMAddScalarReplAggregatesPassSSA");

   --  See llvm::createScalarReplAggregatesPass function.
   procedure AddScalarReplAggregatesPassWithThreshold
     (PM : PassManagerRef; Threshold : Integer);
   pragma Import (C, AddScalarReplAggregatesPassWithThreshold,
                  "LLVMAddScalarReplAggregatesPassWithThreshold");

   --  See llvm::createSimplifyLibCallsPass function.
   procedure AddSimplifyLibCallsPass(PM : PassManagerRef);
   pragma Import (C, AddSimplifyLibCallsPass, "LLVMAddSimplifyLibCallsPass");

   --  See llvm::createTailCallEliminationPass function.
   procedure AddTailCallEliminationPass(PM : PassManagerRef);
   pragma Import (C, AddTailCallEliminationPass,
                  "LLVMAddTailCallEliminationPass");

   --  See llvm::createConstantPropagationPass function.
   procedure AddConstantPropagationPass(PM : PassManagerRef);
   pragma Import (C, AddConstantPropagationPass,
                  "LLVMAddConstantPropagationPass");

   --  See llvm::demotePromoteMemoryToRegisterPass function.
   procedure AddDemoteMemoryToRegisterPass(PM : PassManagerRef);
   pragma Import (C, AddDemoteMemoryToRegisterPass,
                  "LLVMAddDemoteMemoryToRegisterPass");

   --  See llvm::createVerifierPass function.
   procedure AddVerifierPass(PM : PassManagerRef);
   pragma Import (C, AddVerifierPass, "LLVMAddVerifierPass");

   --  See llvm::createCorrelatedValuePropagationPass function
   procedure AddCorrelatedValuePropagationPass(PM : PassManagerRef);
   pragma Import (C, AddCorrelatedValuePropagationPass,
                  "LLVMAddCorrelatedValuePropagationPass");

   --  See llvm::createEarlyCSEPass function
   procedure AddEarlyCSEPass(PM : PassManagerRef);
   pragma Import (C, AddEarlyCSEPass, "LLVMAddEarlyCSEPass");

   --  See llvm::createLowerExpectIntrinsicPass function
   procedure AddLowerExpectIntrinsicPass(PM : PassManagerRef);
   pragma Import (C, AddLowerExpectIntrinsicPass,
                  "LLVMAddLowerExpectIntrinsicPass");

   --  See llvm::createTypeBasedAliasAnalysisPass function
   procedure AddTypeBasedAliasAnalysisPass(PM : PassManagerRef);
   pragma Import (C, AddTypeBasedAliasAnalysisPass,
                  "LLVMAddTypeBasedAliasAnalysisPass");

   --  See llvm::createBasicAliasAnalysisPass function
   procedure AddBasicAliasAnalysisPass(PM : PassManagerRef);
   pragma Import (C, AddBasicAliasAnalysisPass,
                  "LLVMAddBasicAliasAnalysisPass");
end LLVM.Transforms.Scalar;