Mercurial > hg > CbC > CbC_llvm
diff lib/Target/X86/X86.h @ 148:63bd29f05246
merged
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 14 Aug 2019 19:46:37 +0900 |
parents | c2174574ed3a |
children |
line wrap: on
line diff
--- a/lib/Target/X86/X86.h Sun Dec 23 19:23:36 2018 +0900 +++ b/lib/Target/X86/X86.h Wed Aug 14 19:46:37 2019 +0900 @@ -1,9 +1,8 @@ //===-- X86.h - Top-level interface for X86 representation ------*- C++ -*-===// // -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // @@ -70,8 +69,14 @@ /// Return a pass that transforms setcc + movzx pairs into xor + setcc. FunctionPass *createX86FixupSetCC(); +/// Return a pass that folds conditional branch jumps. +FunctionPass *createX86CondBrFolding(); + /// Return a pass that avoids creating store forward block issues in the hardware. -FunctionPass *createX86FixupSFB(); +FunctionPass *createX86AvoidStoreForwardingBlocks(); + +/// Return a pass that lowers EFLAGS copy pseudo instructions. +FunctionPass *createX86FlagsCopyLoweringPass(); /// Return a pass that expands WinAlloca pseudo-instructions. FunctionPass *createX86WinAllocaExpander(); @@ -104,8 +109,6 @@ /// to another, when profitable. FunctionPass *createX86DomainReassignmentPass(); -void initializeFixupBWInstPassPass(PassRegistry &); - /// This pass replaces EVEX encoded of AVX-512 instructiosn by VEX /// encoding when possible in order to reduce code size. FunctionPass *createX86EvexToVexInsts(); @@ -113,11 +116,33 @@ /// This pass creates the thunks for the retpoline feature. FunctionPass *createX86RetpolineThunksPass(); +/// This pass ensures instructions featuring a memory operand +/// have distinctive <LineNumber, Discriminator> (with respect to eachother) +FunctionPass *createX86DiscriminateMemOpsPass(); + +/// This pass applies profiling information to insert cache prefetches. +FunctionPass *createX86InsertPrefetchPass(); + InstructionSelector *createX86InstructionSelector(const X86TargetMachine &TM, X86Subtarget &, X86RegisterBankInfo &); +FunctionPass *createX86SpeculativeLoadHardeningPass(); + void initializeEvexToVexInstPassPass(PassRegistry &); +void initializeFixupBWInstPassPass(PassRegistry &); +void initializeFixupLEAPassPass(PassRegistry &); +void initializeFPSPass(PassRegistry &); +void initializeWinEHStatePassPass(PassRegistry &); +void initializeX86AvoidSFBPassPass(PassRegistry &); +void initializeX86CallFrameOptimizationPass(PassRegistry &); +void initializeX86CmovConverterPassPass(PassRegistry &); +void initializeX86ExpandPseudoPass(PassRegistry&); +void initializeX86CondBrFoldingPassPass(PassRegistry &); +void initializeX86DomainReassignmentPass(PassRegistry &); +void initializeX86ExecutionDomainFixPass(PassRegistry &); +void initializeX86FlagsCopyLoweringPassPass(PassRegistry &); +void initializeX86SpeculativeLoadHardeningPassPass(PassRegistry &); } // End llvm namespace