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