Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(541)

Side by Side Diff: include/llvm/Transforms/NaCl.h

Issue 29743003: Add passes for applying SFI sandboxing at the LLVM IR level Base URL: http://git.chromium.org/native_client/pnacl-llvm.git@master
Patch Set: Retry upload Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | lib/Bitcode/NaCl/Analysis/LLVMBuild.txt » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 //===-- NaCl.h - NaCl Transformations ---------------------------*- C++ -*-===// 1 //===-- NaCl.h - NaCl Transformations ---------------------------*- C++ -*-===//
2 // 2 //
3 // The LLVM Compiler Infrastructure 3 // The LLVM Compiler Infrastructure
4 // 4 //
5 // This file is distributed under the University of Illinois Open Source 5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details. 6 // License. See LICENSE.TXT for details.
7 // 7 //
8 //===----------------------------------------------------------------------===// 8 //===----------------------------------------------------------------------===//
9 9
10 #ifndef LLVM_TRANSFORMS_NACL_H 10 #ifndef LLVM_TRANSFORMS_NACL_H
11 #define LLVM_TRANSFORMS_NACL_H 11 #define LLVM_TRANSFORMS_NACL_H
12 12
13 #include "llvm/CodeGen/Passes.h" 13 #include "llvm/CodeGen/Passes.h"
14 14
15 namespace llvm { 15 namespace llvm {
16 16
17 // XXX: move this to InitializePasses.h!
18 class PassRegistry;
19 void initializeExpandAllocasPass(PassRegistry&);
20 void initializeAllocateDataSegmentPass(PassRegistry&);
21 void initializeSandboxIndirectCallsPass(PassRegistry&);
22 void initializeSandboxMemoryAccessesPass(PassRegistry&);
23 void initializeStripTlsPass(PassRegistry&);
24
17 class BasicBlockPass; 25 class BasicBlockPass;
18 class Function; 26 class Function;
19 class FunctionPass; 27 class FunctionPass;
20 class FunctionType; 28 class FunctionType;
21 class Instruction; 29 class Instruction;
22 class ModulePass; 30 class ModulePass;
23 class Use; 31 class Use;
24 class Value; 32 class Value;
25 33
26 BasicBlockPass *createCombineVectorInstructionsPass(); 34 BasicBlockPass *createCombineVectorInstructionsPass();
27 BasicBlockPass *createConstantInsertExtractElementIndexPass(); 35 BasicBlockPass *createConstantInsertExtractElementIndexPass();
28 BasicBlockPass *createExpandGetElementPtrPass(); 36 BasicBlockPass *createExpandGetElementPtrPass();
29 BasicBlockPass *createExpandShuffleVectorPass(); 37 BasicBlockPass *createExpandShuffleVectorPass();
30 BasicBlockPass *createFixVectorLoadStoreAlignmentPass(); 38 BasicBlockPass *createFixVectorLoadStoreAlignmentPass();
31 BasicBlockPass *createPromoteI1OpsPass(); 39 BasicBlockPass *createPromoteI1OpsPass();
32 FunctionPass *createExpandConstantExprPass(); 40 FunctionPass *createExpandConstantExprPass();
33 FunctionPass *createExpandStructRegsPass(); 41 FunctionPass *createExpandStructRegsPass();
34 FunctionPass *createInsertDivideCheckPass(); 42 FunctionPass *createInsertDivideCheckPass();
35 FunctionPass *createPromoteIntegersPass(); 43 FunctionPass *createPromoteIntegersPass();
36 FunctionPass *createRemoveAsmMemoryPass(); 44 FunctionPass *createRemoveAsmMemoryPass();
37 FunctionPass *createResolvePNaClIntrinsicsPass(); 45 FunctionPass *createResolvePNaClIntrinsicsPass();
38 ModulePass *createAddPNaClExternalDeclsPass(); 46 ModulePass *createAddPNaClExternalDeclsPass();
47 ModulePass *createAllocateDataSegmentPass();
48 ModulePass *createExpandAllocasPass();
49 ModulePass *createSandboxIndirectCallsPass();
50 ModulePass *createSandboxMemoryAccessesPass();
51 ModulePass *createStripTlsPass();
39 ModulePass *createCanonicalizeMemIntrinsicsPass(); 52 ModulePass *createCanonicalizeMemIntrinsicsPass();
40 ModulePass *createExpandArithWithOverflowPass(); 53 ModulePass *createExpandArithWithOverflowPass();
41 ModulePass *createExpandByValPass(); 54 ModulePass *createExpandByValPass();
42 ModulePass *createExpandCtorsPass(); 55 ModulePass *createExpandCtorsPass();
43 ModulePass *createExpandIndirectBrPass(); 56 ModulePass *createExpandIndirectBrPass();
44 ModulePass *createExpandSmallArgumentsPass(); 57 ModulePass *createExpandSmallArgumentsPass();
45 ModulePass *createExpandTlsConstantExprPass(); 58 ModulePass *createExpandTlsConstantExprPass();
46 ModulePass *createExpandTlsPass(); 59 ModulePass *createExpandTlsPass();
47 ModulePass *createExpandVarArgsPass(); 60 ModulePass *createExpandVarArgsPass();
48 ModulePass *createFlattenGlobalsPass(); 61 ModulePass *createFlattenGlobalsPass();
(...skipping 28 matching lines...) Expand all
77 // In order to change a function's type, the function must be 90 // In order to change a function's type, the function must be
78 // recreated. RecreateFunction() recreates Func with type NewType. 91 // recreated. RecreateFunction() recreates Func with type NewType.
79 // It copies or moves across everything except the argument values, 92 // It copies or moves across everything except the argument values,
80 // which the caller must update because the argument types might be 93 // which the caller must update because the argument types might be
81 // different. 94 // different.
82 Function *RecreateFunction(Function *Func, FunctionType *NewType); 95 Function *RecreateFunction(Function *Func, FunctionType *NewType);
83 96
84 } 97 }
85 98
86 #endif 99 #endif
OLDNEW
« no previous file with comments | « no previous file | lib/Bitcode/NaCl/Analysis/LLVMBuild.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698