Mercurial > projects > ldc
annotate tools/binding/llvm/c/transforms/Scalar.d @ 1638:0de4525a9ed6
Apply workaround for #395 by klickverbot.
author | Christian Kamm <kamm incasoftware de> |
---|---|
date | Mon, 08 Mar 2010 20:06:08 +0100 |
parents | 29b0f2d11c92 |
children |
rev | line source |
---|---|
1585
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
1 // Converted to the D programming language by Tomas Lindquist Olsen 2009 |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
2 |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
3 /*===-- Scalar.h - Scalar Transformation Library C Interface ----*- C++ -*-===*\ |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
4 |* *| |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
5 |* The LLVM Compiler Infrastructure *| |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
6 |* *| |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
7 |* This file is distributed under the University of Illinois Open Source *| |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
8 |* License. See LICENSE.TXT for details. *| |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
9 |* *| |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
10 |*===----------------------------------------------------------------------===*| |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
11 |* *| |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
12 |* This header declares the C interface to libLLVMScalarOpts.a, which *| |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
13 |* implements various scalar transformations of the LLVM IR. *| |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
14 |* *| |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
15 |* Many exotic languages can interoperate with C code but have a harder time *| |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
16 |* with C++ due to name mangling. So in addition to C, this interface enables *| |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
17 |* tools written in such languages. *| |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
18 |* *| |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
19 \*===----------------------------------------------------------------------===*/ |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
20 module llvm.c.transforms.Scalar; |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
21 |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
22 import llvm.c.Core; |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
23 |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
24 extern(C): |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
25 |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
26 /** See llvm::createAggressiveDCEPass function. */ |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
27 void LLVMAddAggressiveDCEPass(LLVMPassManagerRef PM); |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
28 |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
29 /** See llvm::createCFGSimplificationPass function. */ |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
30 void LLVMAddCFGSimplificationPass(LLVMPassManagerRef PM); |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
31 |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
32 /** See llvm::createCondPropagationPass function. */ |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
33 void LLVMAddCondPropagationPass(LLVMPassManagerRef PM); |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
34 |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
35 /** See llvm::createDeadStoreEliminationPass function. */ |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
36 void LLVMAddDeadStoreEliminationPass(LLVMPassManagerRef PM); |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
37 |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
38 /** See llvm::createGVNPass function. */ |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
39 void LLVMAddGVNPass(LLVMPassManagerRef PM); |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
40 |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
41 /** See llvm::createIndVarSimplifyPass function. */ |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
42 void LLVMAddIndVarSimplifyPass(LLVMPassManagerRef PM); |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
43 |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
44 /** See llvm::createInstructionCombiningPass function. */ |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
45 void LLVMAddInstructionCombiningPass(LLVMPassManagerRef PM); |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
46 |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
47 /** See llvm::createJumpThreadingPass function. */ |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
48 void LLVMAddJumpThreadingPass(LLVMPassManagerRef PM); |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
49 |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
50 /** See llvm::createLICMPass function. */ |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
51 void LLVMAddLICMPass(LLVMPassManagerRef PM); |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
52 |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
53 /** See llvm::createLoopDeletionPass function. */ |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
54 void LLVMAddLoopDeletionPass(LLVMPassManagerRef PM); |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
55 |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
56 /** See llvm::createLoopIndexSplitPass function. */ |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
57 void LLVMAddLoopIndexSplitPass(LLVMPassManagerRef PM); |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
58 |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
59 /** See llvm::createLoopRotatePass function. */ |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
60 void LLVMAddLoopRotatePass(LLVMPassManagerRef PM); |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
61 |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
62 /** See llvm::createLoopUnrollPass function. */ |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
63 void LLVMAddLoopUnrollPass(LLVMPassManagerRef PM); |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
64 |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
65 /** See llvm::createLoopUnswitchPass function. */ |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
66 void LLVMAddLoopUnswitchPass(LLVMPassManagerRef PM); |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
67 |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
68 /** See llvm::createMemCpyOptPass function. */ |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
69 void LLVMAddMemCpyOptPass(LLVMPassManagerRef PM); |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
70 |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
71 /** See llvm::createPromoteMemoryToRegisterPass function. */ |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
72 void LLVMAddPromoteMemoryToRegisterPass(LLVMPassManagerRef PM); |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
73 |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
74 /** See llvm::createReassociatePass function. */ |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
75 void LLVMAddReassociatePass(LLVMPassManagerRef PM); |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
76 |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
77 /** See llvm::createSCCPPass function. */ |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
78 void LLVMAddSCCPPass(LLVMPassManagerRef PM); |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
79 |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
80 /** See llvm::createScalarReplAggregatesPass function. */ |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
81 void LLVMAddScalarReplAggregatesPass(LLVMPassManagerRef PM); |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
82 |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
83 /** See llvm::createSimplifyLibCallsPass function. */ |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
84 void LLVMAddSimplifyLibCallsPass(LLVMPassManagerRef PM); |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
85 |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
86 /** See llvm::createTailCallEliminationPass function. */ |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
87 void LLVMAddTailCallEliminationPass(LLVMPassManagerRef PM); |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
88 |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
89 /** See llvm::createConstantPropagationPass function. */ |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
90 void LLVMAddConstantPropagationPass(LLVMPassManagerRef PM); |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
91 |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
92 /** See llvm::demotePromoteMemoryToRegisterPass function. */ |
29b0f2d11c92
Updated C binding to be more up to date with LLVM.
tomas@localhost.localdomain
parents:
diff
changeset
|
93 void LLVMAddDemoteMemoryToRegisterPass(LLVMPassManagerRef PM); |