mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-07-21 02:29:22 +00:00
add a bunch more passes to the C bindings (PR3734), patch by
Lennart Augustsson! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66272 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
38ead32c95
commit
57c03831cc
74
include/llvm-c/Transforms/IPO.h
Normal file
74
include/llvm-c/Transforms/IPO.h
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
/*===-- Scalar.h - Scalar Transformation Library C Interface ----*- C++ -*-===*\
|
||||||
|
|* *|
|
||||||
|
|* The LLVM Compiler Infrastructure *|
|
||||||
|
|* *|
|
||||||
|
|* This file is distributed under the University of Illinois Open Source *|
|
||||||
|
|* License. See LICENSE.TXT for details. *|
|
||||||
|
|* *|
|
||||||
|
|*===----------------------------------------------------------------------===*|
|
||||||
|
|* *|
|
||||||
|
|* This header declares the C interface to libLLVMScalarOpts.a, which *|
|
||||||
|
|* implements various scalar transformations of the LLVM IR. *|
|
||||||
|
|* *|
|
||||||
|
|* Many exotic languages can interoperate with C code but have a harder time *|
|
||||||
|
|* with C++ due to name mangling. So in addition to C, this interface enables *|
|
||||||
|
|* tools written in such languages. *|
|
||||||
|
|* *|
|
||||||
|
\*===----------------------------------------------------------------------===*/
|
||||||
|
|
||||||
|
#ifndef LLVM_C_TRANSFORMS_SCALAR_H
|
||||||
|
#define LLVM_C_TRANSFORMS_SCALAR_H
|
||||||
|
|
||||||
|
#include "llvm-c/Core.h"
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/** See llvm::createArgumentPromotionPass function. */
|
||||||
|
void LLVMAddArgumentPromotionPass(LLVMPassManagerRef PM);
|
||||||
|
|
||||||
|
/** See llvm::createConstantMergePass function. */
|
||||||
|
void LLVMAddConstantMergePass(LLVMPassManagerRef PM);
|
||||||
|
|
||||||
|
/** See llvm::createDeadArgEliminationPass function. */
|
||||||
|
void LLVMAddDeadArgEliminationPass(LLVMPassManagerRef PM);
|
||||||
|
|
||||||
|
/** See llvm::createDeadTypeEliminationPass function. */
|
||||||
|
void LLVMAddDeadTypeEliminationPass(LLVMPassManagerRef PM);
|
||||||
|
|
||||||
|
/** See llvm::createFunctionAttrsPass function. */
|
||||||
|
void LLVMAddFunctionAttrsPass(LLVMPassManagerRef PM);
|
||||||
|
|
||||||
|
/** See llvm::createFunctionInliningPass function. */
|
||||||
|
void LLVMAddFunctionInliningPass(LLVMPassManagerRef PM);
|
||||||
|
|
||||||
|
/** See llvm::createGlobalDCEPass function. */
|
||||||
|
void LLVMAddGlobalDCEPass(LLVMPassManagerRef PM);
|
||||||
|
|
||||||
|
/** See llvm::createGlobalOptimizerPass function. */
|
||||||
|
void LLVMAddGlobalOptimizerPass(LLVMPassManagerRef PM);
|
||||||
|
|
||||||
|
/** See llvm::createIPConstantPropagationPass function. */
|
||||||
|
void LLVMAddIPConstantPropagationPass(LLVMPassManagerRef PM);
|
||||||
|
|
||||||
|
/** See llvm::createLowerSetJmpPass function. */
|
||||||
|
void LLVMAddLowerSetJmpPass(LLVMPassManagerRef PM);
|
||||||
|
|
||||||
|
/** See llvm::createPruneEHPass function. */
|
||||||
|
void LLVMAddPruneEHPass(LLVMPassManagerRef PM);
|
||||||
|
|
||||||
|
/** See llvm::createRaiseAllocationsPass function. */
|
||||||
|
void LLVMAddRaiseAllocationsPass(LLVMPassManagerRef PM);
|
||||||
|
|
||||||
|
/** See llvm::createStripDeadPrototypesPass function. */
|
||||||
|
void LLVMAddStripDeadPrototypesPass(LLVMPassManagerRef PM);
|
||||||
|
|
||||||
|
/** See llvm::createStripSymbolsPass function. */
|
||||||
|
void LLVMAddStripSymbolsPass(LLVMPassManagerRef PM);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif /* defined(__cplusplus) */
|
||||||
|
|
||||||
|
#endif
|
@ -25,26 +25,74 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/** See llvm::createConstantPropagationPass function. */
|
/** See llvm::createAggressiveDCEPass function. */
|
||||||
void LLVMAddConstantPropagationPass(LLVMPassManagerRef PM);
|
void LLVMAddAggressiveDCEPass(LLVMPassManagerRef PM);
|
||||||
|
|
||||||
/** See llvm::createInstructionCombiningPass function. */
|
/** See llvm::createCFGSimplificationPass function. */
|
||||||
void LLVMAddInstructionCombiningPass(LLVMPassManagerRef PM);
|
void LLVMAddCFGSimplificationPass(LLVMPassManagerRef PM);
|
||||||
|
|
||||||
/** See llvm::createPromoteMemoryToRegisterPass function. */
|
/** See llvm::createCondPropagationPass function. */
|
||||||
void LLVMAddPromoteMemoryToRegisterPass(LLVMPassManagerRef PM);
|
void LLVMAddCondPropagationPass(LLVMPassManagerRef PM);
|
||||||
|
|
||||||
/** See llvm::demotePromoteMemoryToRegisterPass function. */
|
/** See llvm::createDeadStoreEliminationPass function. */
|
||||||
void LLVMAddDemoteMemoryToRegisterPass(LLVMPassManagerRef PM);
|
void LLVMAddDeadStoreEliminationPass(LLVMPassManagerRef PM);
|
||||||
|
|
||||||
/** See llvm::createReassociatePass function. */
|
|
||||||
void LLVMAddReassociatePass(LLVMPassManagerRef PM);
|
|
||||||
|
|
||||||
/** See llvm::createGVNPass function. */
|
/** See llvm::createGVNPass function. */
|
||||||
void LLVMAddGVNPass(LLVMPassManagerRef PM);
|
void LLVMAddGVNPass(LLVMPassManagerRef PM);
|
||||||
|
|
||||||
/** See llvm::createCFGSimplificationPass function. */
|
/** See llvm::createIndVarSimplifyPass function. */
|
||||||
void LLVMAddCFGSimplificationPass(LLVMPassManagerRef PM);
|
void LLVMAddIndVarSimplifyPass(LLVMPassManagerRef PM);
|
||||||
|
|
||||||
|
/** See llvm::createInstructionCombiningPass function. */
|
||||||
|
void LLVMAddInstructionCombiningPass(LLVMPassManagerRef PM);
|
||||||
|
|
||||||
|
/** See llvm::createJumpThreadingPass function. */
|
||||||
|
void LLVMAddJumpThreadingPass(LLVMPassManagerRef PM);
|
||||||
|
|
||||||
|
/** See llvm::createLICMPass function. */
|
||||||
|
void LLVMAddLICMPass(LLVMPassManagerRef PM);
|
||||||
|
|
||||||
|
/** See llvm::createLoopDeletionPass function. */
|
||||||
|
void LLVMAddLoopDeletionPass(LLVMPassManagerRef PM);
|
||||||
|
|
||||||
|
/** See llvm::createLoopIndexSplitPass function. */
|
||||||
|
void LLVMAddLoopIndexSplitPass(LLVMPassManagerRef PM);
|
||||||
|
|
||||||
|
/** See llvm::createLoopRotatePass function. */
|
||||||
|
void LLVMAddLoopRotatePass(LLVMPassManagerRef PM);
|
||||||
|
|
||||||
|
/** See llvm::createLoopUnrollPass function. */
|
||||||
|
void LLVMAddLoopUnrollPass(LLVMPassManagerRef PM);
|
||||||
|
|
||||||
|
/** See llvm::createLoopUnswitchPass function. */
|
||||||
|
void LLVMAddLoopUnswitchPass(LLVMPassManagerRef PM);
|
||||||
|
|
||||||
|
/** See llvm::createMemCpyOptPass function. */
|
||||||
|
void LLVMAddMemCpyOptPass(LLVMPassManagerRef PM);
|
||||||
|
|
||||||
|
/** See llvm::createPromoteMemoryToRegisterPass function. */
|
||||||
|
void LLVMAddPromoteMemoryToRegisterPass(LLVMPassManagerRef PM);
|
||||||
|
|
||||||
|
/** See llvm::createReassociatePass function. */
|
||||||
|
void LLVMAddReassociatePass(LLVMPassManagerRef PM);
|
||||||
|
|
||||||
|
/** See llvm::createSCCPPass function. */
|
||||||
|
void LLVMAddSCCPPass(LLVMPassManagerRef PM);
|
||||||
|
|
||||||
|
/** See llvm::createScalarReplAggregatesPass function. */
|
||||||
|
void LLVMAddScalarReplAggregatesPass(LLVMPassManagerRef PM);
|
||||||
|
|
||||||
|
/** See llvm::createSimplifyLibCallsPass function. */
|
||||||
|
void LLVMAddSimplifyLibCallsPass(LLVMPassManagerRef PM);
|
||||||
|
|
||||||
|
/** See llvm::createTailCallEliminationPass function. */
|
||||||
|
void LLVMAddTailCallEliminationPass(LLVMPassManagerRef PM);
|
||||||
|
|
||||||
|
/** See llvm::createConstantPropagationPass function. */
|
||||||
|
void LLVMAddConstantPropagationPass(LLVMPassManagerRef PM);
|
||||||
|
|
||||||
|
/** See llvm::demotePromoteMemoryToRegisterPass function. */
|
||||||
|
void LLVMAddDemoteMemoryToRegisterPass(LLVMPassManagerRef PM);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
75
lib/Transforms/IPO/IPO.cpp
Normal file
75
lib/Transforms/IPO/IPO.cpp
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
//===-- Scalar.cpp --------------------------------------------------------===//
|
||||||
|
//
|
||||||
|
// The LLVM Compiler Infrastructure
|
||||||
|
//
|
||||||
|
// This file is distributed under the University of Illinois Open Source
|
||||||
|
// License. See LICENSE.TXT for details.
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
//
|
||||||
|
// This file implements the C bindings for libLLVMIPO.a, which implements
|
||||||
|
// several transformations over the LLVM intermediate representation.
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
|
#include "llvm-c/Transforms/IPO.h"
|
||||||
|
#include "llvm/PassManager.h"
|
||||||
|
#include "llvm/Transforms/IPO.h"
|
||||||
|
|
||||||
|
using namespace llvm;
|
||||||
|
|
||||||
|
void LLVMAddArgumentPromotionPass(LLVMPassManagerRef PM) {
|
||||||
|
unwrap(PM)->add(createArgumentPromotionPass());
|
||||||
|
}
|
||||||
|
|
||||||
|
void LLVMAddConstantMergePass(LLVMPassManagerRef PM) {
|
||||||
|
unwrap(PM)->add(createConstantMergePass());
|
||||||
|
}
|
||||||
|
|
||||||
|
void LLVMAddDeadArgEliminationPass(LLVMPassManagerRef PM) {
|
||||||
|
unwrap(PM)->add(createDeadArgEliminationPass());
|
||||||
|
}
|
||||||
|
|
||||||
|
void LLVMAddDeadTypeEliminationPass(LLVMPassManagerRef PM) {
|
||||||
|
unwrap(PM)->add(createDeadTypeEliminationPass());
|
||||||
|
}
|
||||||
|
|
||||||
|
void LLVMAddFunctionAttrsPass(LLVMPassManagerRef PM) {
|
||||||
|
unwrap(PM)->add(createFunctionAttrsPass());
|
||||||
|
}
|
||||||
|
|
||||||
|
void LLVMAddFunctionInliningPass(LLVMPassManagerRef PM) {
|
||||||
|
unwrap(PM)->add(createFunctionInliningPass());
|
||||||
|
}
|
||||||
|
|
||||||
|
void LLVMAddGlobalDCEPass(LLVMPassManagerRef PM) {
|
||||||
|
unwrap(PM)->add(createGlobalDCEPass());
|
||||||
|
}
|
||||||
|
|
||||||
|
void LLVMAddGlobalOptimizerPass(LLVMPassManagerRef PM) {
|
||||||
|
unwrap(PM)->add(createGlobalOptimizerPass());
|
||||||
|
}
|
||||||
|
|
||||||
|
void LLVMAddIPConstantPropagationPass(LLVMPassManagerRef PM) {
|
||||||
|
unwrap(PM)->add(createIPConstantPropagationPass());
|
||||||
|
}
|
||||||
|
|
||||||
|
void LLVMAddLowerSetJmpPass(LLVMPassManagerRef PM) {
|
||||||
|
unwrap(PM)->add(createLowerSetJmpPass());
|
||||||
|
}
|
||||||
|
|
||||||
|
void LLVMAddPruneEHPass(LLVMPassManagerRef PM) {
|
||||||
|
unwrap(PM)->add(createPruneEHPass());
|
||||||
|
}
|
||||||
|
|
||||||
|
void LLVMAddRaiseAllocationsPass(LLVMPassManagerRef PM) {
|
||||||
|
unwrap(PM)->add(createRaiseAllocationsPass());
|
||||||
|
}
|
||||||
|
|
||||||
|
void LLVMAddStripDeadPrototypesPass(LLVMPassManagerRef PM) {
|
||||||
|
unwrap(PM)->add(createStripDeadPrototypesPass());
|
||||||
|
}
|
||||||
|
|
||||||
|
void LLVMAddStripSymbolsPass(LLVMPassManagerRef PM) {
|
||||||
|
unwrap(PM)->add(createStripSymbolsPass());
|
||||||
|
}
|
@ -18,30 +18,94 @@
|
|||||||
|
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
void LLVMAddConstantPropagationPass(LLVMPassManagerRef PM) {
|
void LLVMAddAggressiveDCEPass(LLVMPassManagerRef PM) {
|
||||||
unwrap(PM)->add(createConstantPropagationPass());
|
unwrap(PM)->add(createAggressiveDCEPass());
|
||||||
}
|
}
|
||||||
|
|
||||||
void LLVMAddInstructionCombiningPass(LLVMPassManagerRef PM) {
|
void LLVMAddCFGSimplificationPass(LLVMPassManagerRef PM) {
|
||||||
unwrap(PM)->add(createInstructionCombiningPass());
|
unwrap(PM)->add(createCFGSimplificationPass());
|
||||||
}
|
}
|
||||||
|
|
||||||
void LLVMAddPromoteMemoryToRegisterPass(LLVMPassManagerRef PM) {
|
void LLVMAddCondPropagationPass(LLVMPassManagerRef PM) {
|
||||||
unwrap(PM)->add(createPromoteMemoryToRegisterPass());
|
unwrap(PM)->add(createCondPropagationPass());
|
||||||
}
|
}
|
||||||
|
|
||||||
void LLVMAddDemoteMemoryToRegisterPass(LLVMPassManagerRef PM) {
|
void LLVMAddDeadStoreEliminationPass(LLVMPassManagerRef PM) {
|
||||||
unwrap(PM)->add(createDemoteRegisterToMemoryPass());
|
unwrap(PM)->add(createDeadStoreEliminationPass());
|
||||||
}
|
|
||||||
|
|
||||||
void LLVMAddReassociatePass(LLVMPassManagerRef PM) {
|
|
||||||
unwrap(PM)->add(createReassociatePass());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void LLVMAddGVNPass(LLVMPassManagerRef PM) {
|
void LLVMAddGVNPass(LLVMPassManagerRef PM) {
|
||||||
unwrap(PM)->add(createGVNPass());
|
unwrap(PM)->add(createGVNPass());
|
||||||
}
|
}
|
||||||
|
|
||||||
void LLVMAddCFGSimplificationPass(LLVMPassManagerRef PM) {
|
void LLVMAddIndVarSimplifyPass(LLVMPassManagerRef PM) {
|
||||||
unwrap(PM)->add(createCFGSimplificationPass());
|
unwrap(PM)->add(createIndVarSimplifyPass());
|
||||||
|
}
|
||||||
|
|
||||||
|
void LLVMAddInstructionCombiningPass(LLVMPassManagerRef PM) {
|
||||||
|
unwrap(PM)->add(createInstructionCombiningPass());
|
||||||
|
}
|
||||||
|
|
||||||
|
void LLVMAddJumpThreadingPass(LLVMPassManagerRef PM) {
|
||||||
|
unwrap(PM)->add(createJumpThreadingPass());
|
||||||
|
}
|
||||||
|
|
||||||
|
void LLVMAddLICMPass(LLVMPassManagerRef PM) {
|
||||||
|
unwrap(PM)->add(createLICMPass());
|
||||||
|
}
|
||||||
|
|
||||||
|
void LLVMAddLoopDeletionPass(LLVMPassManagerRef PM) {
|
||||||
|
unwrap(PM)->add(createLoopDeletionPass());
|
||||||
|
}
|
||||||
|
|
||||||
|
void LLVMAddLoopIndexSplitPass(LLVMPassManagerRef PM) {
|
||||||
|
unwrap(PM)->add(createLoopIndexSplitPass());
|
||||||
|
}
|
||||||
|
|
||||||
|
void LLVMAddLoopRotatePass(LLVMPassManagerRef PM) {
|
||||||
|
unwrap(PM)->add(createLoopRotatePass());
|
||||||
|
}
|
||||||
|
|
||||||
|
void LLVMAddLoopUnrollPass(LLVMPassManagerRef PM) {
|
||||||
|
unwrap(PM)->add(createLoopUnrollPass());
|
||||||
|
}
|
||||||
|
|
||||||
|
void LLVMAddLoopUnswitchPass(LLVMPassManagerRef PM) {
|
||||||
|
unwrap(PM)->add(createLoopUnswitchPass());
|
||||||
|
}
|
||||||
|
|
||||||
|
void LLVMAddMemCpyOptPass(LLVMPassManagerRef PM) {
|
||||||
|
unwrap(PM)->add(createMemCpyOptPass());
|
||||||
|
}
|
||||||
|
|
||||||
|
void LLVMAddPromoteMemoryToRegisterPass(LLVMPassManagerRef PM) {
|
||||||
|
unwrap(PM)->add(createPromoteMemoryToRegisterPass());
|
||||||
|
}
|
||||||
|
|
||||||
|
void LLVMAddReassociatePass(LLVMPassManagerRef PM) {
|
||||||
|
unwrap(PM)->add(createReassociatePass());
|
||||||
|
}
|
||||||
|
|
||||||
|
void LLVMAddSCCPPass(LLVMPassManagerRef PM) {
|
||||||
|
unwrap(PM)->add(createSCCPPass());
|
||||||
|
}
|
||||||
|
|
||||||
|
void LLVMAddScalarReplAggregatesPass(LLVMPassManagerRef PM) {
|
||||||
|
unwrap(PM)->add(createScalarReplAggregatesPass());
|
||||||
|
}
|
||||||
|
|
||||||
|
void LLVMAddSimplifyLibCallsPass(LLVMPassManagerRef PM) {
|
||||||
|
unwrap(PM)->add(createSimplifyLibCallsPass());
|
||||||
|
}
|
||||||
|
|
||||||
|
void LLVMAddTailCallEliminationPass(LLVMPassManagerRef PM) {
|
||||||
|
unwrap(PM)->add(createTailCallEliminationPass());
|
||||||
|
}
|
||||||
|
|
||||||
|
void LLVMAddConstantPropagationPass(LLVMPassManagerRef PM) {
|
||||||
|
unwrap(PM)->add(createConstantPropagationPass());
|
||||||
|
}
|
||||||
|
|
||||||
|
void LLVMAddDemoteMemoryToRegisterPass(LLVMPassManagerRef PM) {
|
||||||
|
unwrap(PM)->add(createDemoteRegisterToMemoryPass());
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user