OLD | NEW |
1 //===-- X86.h - Top-level interface for X86 representation ------*- C++ -*-===// | 1 //===-- X86.h - Top-level interface for X86 representation ------*- 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 // This file contains the entry points for global functions defined in the x86 | 10 // This file contains the entry points for global functions defined in the x86 |
(...skipping 26 matching lines...) Expand all Loading... |
37 /// to local-dynamic TLS variables so that the TLS base address for the module | 37 /// to local-dynamic TLS variables so that the TLS base address for the module |
38 /// is only fetched once per execution path through the function. | 38 /// is only fetched once per execution path through the function. |
39 FunctionPass *createCleanupLocalDynamicTLSPass(); | 39 FunctionPass *createCleanupLocalDynamicTLSPass(); |
40 | 40 |
41 /// createX86FloatingPointStackifierPass - This function returns a pass which | 41 /// createX86FloatingPointStackifierPass - This function returns a pass which |
42 /// converts floating point register references and pseudo instructions into | 42 /// converts floating point register references and pseudo instructions into |
43 /// floating point stack references and physical instructions. | 43 /// floating point stack references and physical instructions. |
44 /// | 44 /// |
45 FunctionPass *createX86FloatingPointStackifierPass(); | 45 FunctionPass *createX86FloatingPointStackifierPass(); |
46 | 46 |
| 47 // @LOCALMOD-BEGIN - Creates a pass to make instructions follow NaCl SFI rules. |
| 48 FunctionPass* createX86NaClRewritePass(); |
| 49 // @LOCALMOD-END |
| 50 |
47 /// createX86IssueVZeroUpperPass - This pass inserts AVX vzeroupper instructions | 51 /// createX86IssueVZeroUpperPass - This pass inserts AVX vzeroupper instructions |
48 /// before each call to avoid transition penalty between functions encoded with | 52 /// before each call to avoid transition penalty between functions encoded with |
49 /// AVX and SSE. | 53 /// AVX and SSE. |
50 FunctionPass *createX86IssueVZeroUpperPass(); | 54 FunctionPass *createX86IssueVZeroUpperPass(); |
51 | 55 |
52 /// createX86EmitCodeToMemory - Returns a pass that converts a register | 56 /// createX86EmitCodeToMemory - Returns a pass that converts a register |
53 /// allocated function into raw machine code in a dynamically | 57 /// allocated function into raw machine code in a dynamically |
54 /// allocated chunk of memory. | 58 /// allocated chunk of memory. |
55 /// | 59 /// |
56 FunctionPass *createEmitX86CodeToMemory(); | 60 FunctionPass *createEmitX86CodeToMemory(); |
57 | 61 |
58 /// \brief Creates an X86-specific Target Transformation Info pass. | 62 /// \brief Creates an X86-specific Target Transformation Info pass. |
59 ImmutablePass *createX86TargetTransformInfoPass(const X86TargetMachine *TM); | 63 ImmutablePass *createX86TargetTransformInfoPass(const X86TargetMachine *TM); |
60 | 64 |
61 /// createX86PadShortFunctions - Return a pass that pads short functions | 65 /// createX86PadShortFunctions - Return a pass that pads short functions |
62 /// with NOOPs. This will prevent a stall when returning on the Atom. | 66 /// with NOOPs. This will prevent a stall when returning on the Atom. |
63 FunctionPass *createX86PadShortFunctions(); | 67 FunctionPass *createX86PadShortFunctions(); |
64 /// createX86FixupLEAs - Return a a pass that selectively replaces | 68 /// createX86FixupLEAs - Return a a pass that selectively replaces |
65 /// certain instructions (like add, sub, inc, dec, some shifts, | 69 /// certain instructions (like add, sub, inc, dec, some shifts, |
66 /// and some multiplies) by equivalent LEA instructions, in order | 70 /// and some multiplies) by equivalent LEA instructions, in order |
67 /// to eliminate execution delays in some Atom processors. | 71 /// to eliminate execution delays in some Atom processors. |
68 FunctionPass *createX86FixupLEAs(); | 72 FunctionPass *createX86FixupLEAs(); |
69 | 73 |
70 } // End llvm namespace | 74 } // End llvm namespace |
71 | 75 |
72 #endif | 76 #endif |
OLD | NEW |