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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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);