Mercurial > hg > CbC > CbC_llvm
comparison lib/Target/X86/X86.h @ 147:c2174574ed3a
LLVM 10
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 14 Aug 2019 16:55:33 +0900 |
parents | 3a76565eade5 |
children |
comparison
equal
deleted
inserted
replaced
134:3a76565eade5 | 147:c2174574ed3a |
---|---|
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 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
4 // | 4 // See https://llvm.org/LICENSE.txt for license information. |
5 // This file is distributed under the University of Illinois Open Source | 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
6 // License. See LICENSE.TXT for details. | |
7 // | 6 // |
8 //===----------------------------------------------------------------------===// | 7 //===----------------------------------------------------------------------===// |
9 // | 8 // |
10 // This file contains the entry points for global functions defined in the x86 | 9 // This file contains the entry points for global functions defined in the x86 |
11 // target library, as used by the LLVM JIT. | 10 // target library, as used by the LLVM JIT. |
68 FunctionPass *createX86OptimizeLEAs(); | 67 FunctionPass *createX86OptimizeLEAs(); |
69 | 68 |
70 /// Return a pass that transforms setcc + movzx pairs into xor + setcc. | 69 /// Return a pass that transforms setcc + movzx pairs into xor + setcc. |
71 FunctionPass *createX86FixupSetCC(); | 70 FunctionPass *createX86FixupSetCC(); |
72 | 71 |
72 /// Return a pass that folds conditional branch jumps. | |
73 FunctionPass *createX86CondBrFolding(); | |
74 | |
73 /// Return a pass that avoids creating store forward block issues in the hardware. | 75 /// Return a pass that avoids creating store forward block issues in the hardware. |
74 FunctionPass *createX86FixupSFB(); | 76 FunctionPass *createX86AvoidStoreForwardingBlocks(); |
77 | |
78 /// Return a pass that lowers EFLAGS copy pseudo instructions. | |
79 FunctionPass *createX86FlagsCopyLoweringPass(); | |
75 | 80 |
76 /// Return a pass that expands WinAlloca pseudo-instructions. | 81 /// Return a pass that expands WinAlloca pseudo-instructions. |
77 FunctionPass *createX86WinAllocaExpander(); | 82 FunctionPass *createX86WinAllocaExpander(); |
78 | 83 |
79 /// Return a pass that optimizes the code-size of x86 call sequences. This is | 84 /// Return a pass that optimizes the code-size of x86 call sequences. This is |
102 | 107 |
103 /// Return a Machine IR pass that reassigns instruction chains from one domain | 108 /// Return a Machine IR pass that reassigns instruction chains from one domain |
104 /// to another, when profitable. | 109 /// to another, when profitable. |
105 FunctionPass *createX86DomainReassignmentPass(); | 110 FunctionPass *createX86DomainReassignmentPass(); |
106 | 111 |
107 void initializeFixupBWInstPassPass(PassRegistry &); | |
108 | |
109 /// This pass replaces EVEX encoded of AVX-512 instructiosn by VEX | 112 /// This pass replaces EVEX encoded of AVX-512 instructiosn by VEX |
110 /// encoding when possible in order to reduce code size. | 113 /// encoding when possible in order to reduce code size. |
111 FunctionPass *createX86EvexToVexInsts(); | 114 FunctionPass *createX86EvexToVexInsts(); |
112 | 115 |
113 /// This pass creates the thunks for the retpoline feature. | 116 /// This pass creates the thunks for the retpoline feature. |
114 FunctionPass *createX86RetpolineThunksPass(); | 117 FunctionPass *createX86RetpolineThunksPass(); |
115 | 118 |
119 /// This pass ensures instructions featuring a memory operand | |
120 /// have distinctive <LineNumber, Discriminator> (with respect to eachother) | |
121 FunctionPass *createX86DiscriminateMemOpsPass(); | |
122 | |
123 /// This pass applies profiling information to insert cache prefetches. | |
124 FunctionPass *createX86InsertPrefetchPass(); | |
125 | |
116 InstructionSelector *createX86InstructionSelector(const X86TargetMachine &TM, | 126 InstructionSelector *createX86InstructionSelector(const X86TargetMachine &TM, |
117 X86Subtarget &, | 127 X86Subtarget &, |
118 X86RegisterBankInfo &); | 128 X86RegisterBankInfo &); |
119 | 129 |
130 FunctionPass *createX86SpeculativeLoadHardeningPass(); | |
131 | |
120 void initializeEvexToVexInstPassPass(PassRegistry &); | 132 void initializeEvexToVexInstPassPass(PassRegistry &); |
133 void initializeFixupBWInstPassPass(PassRegistry &); | |
134 void initializeFixupLEAPassPass(PassRegistry &); | |
135 void initializeFPSPass(PassRegistry &); | |
136 void initializeWinEHStatePassPass(PassRegistry &); | |
137 void initializeX86AvoidSFBPassPass(PassRegistry &); | |
138 void initializeX86CallFrameOptimizationPass(PassRegistry &); | |
139 void initializeX86CmovConverterPassPass(PassRegistry &); | |
140 void initializeX86ExpandPseudoPass(PassRegistry&); | |
141 void initializeX86CondBrFoldingPassPass(PassRegistry &); | |
142 void initializeX86DomainReassignmentPass(PassRegistry &); | |
143 void initializeX86ExecutionDomainFixPass(PassRegistry &); | |
144 void initializeX86FlagsCopyLoweringPassPass(PassRegistry &); | |
145 void initializeX86SpeculativeLoadHardeningPassPass(PassRegistry &); | |
121 | 146 |
122 } // End llvm namespace | 147 } // End llvm namespace |
123 | 148 |
124 #endif | 149 #endif |