Home
last modified time | relevance | path

Searched +full:auto +full:- +full:load (Results 1 – 25 of 1016) sorted by relevance

12345678910>>...41

/freebsd/contrib/llvm-project/llvm/lib/Transforms/Scalar/
H A DLoopLoadElimination.cpp1 //===- LoopLoadElimination.cpp - Loop Load Elimination Pass ---------------===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
9 // This file implement a loop-aware load elimination pass.
11 // It uses LoopAccessAnalysis to identify loop-carried dependences with a
14 // of the corresponding load. This makes the load dead.
17 // may-aliasing stores can't change the value in memory before it's read by the
18 // load.
20 //===----------------------------------------------------------------------===//
66 #define LLE_OPTION "loop-load-elim"
[all …]
H A DGVN.cpp1 //===- GVN.cpp - Eliminate redundant values and loads ---------------------===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
10 // instructions. It also performs simple dead load elimination.
15 //===----------------------------------------------------------------------===//
105 "Number of times we we reached gvn-max-block-speculations cut-off "
108 static cl::opt<bool> GVNEnablePRE("enable-pre", cl::init(true), cl::Hidden);
109 static cl::opt<bool> GVNEnableLoadPRE("enable-load-pre", cl::init(true));
110 static cl::opt<bool> GVNEnableLoadInLoopPRE("enable-load-in-loop-pre",
113 GVNEnableSplitBackedgeInLoadPRE("enable-split-backedge-in-load-pre",
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Target/BPF/
H A DBPFPreserveStaticOffset.cpp1 //===------ BPFPreserveStaticOffset.cpp -----------------------------------===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
9 // TLDR: replaces llvm.preserve.static.offset + GEP + load / store
10 // with llvm.bpf.getelementptr.and.load / store
16 // using load and store instructions with static immediate offsets.
21 // kernel. During BPF program load LDX and STX instructions
42 // %y = load %x
48 // In order for cases (a) and (b) to work the sequence %x-%y above has
51 // However, several optimization passes might sink `load` instruction
[all …]
H A DBPFCheckAndAdjustIR.cpp1 //===------------ BPFCheckAndAdjustIR.cpp - Check and Adjust IR -----------===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
11 // - no relocation globals in PHI node.
13 // - remove __builtin_bpf_passthrough builtins. Target independent IR
15 // - remove llvm.bpf.getelementptr.and.load builtins.
16 // - remove llvm.bpf.getelementptr.and.store builtins.
17 // - for loads and stores with base addresses from non-zero address space
20 //===----------------------------------------------------------------------===//
39 #define DEBUG_TYPE "bpf-check-and-opt-ir"
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Transforms/InstCombine/
H A DInstCombineLoadStoreAlloca.cpp1 //===- InstCombineLoadStoreAlloca.cpp -------------------------------------===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
9 // This file implements the visit functions for load, store and alloca.
11 //===----------------------------------------------------------------------===//
35 "instcombine-max-copied-from-constant-users", cl::init(300),
41 "enable-infer-alignment-pass", cl::init(true), cl::Hidden, cl::ZeroOrMore,
46 /// isOnlyCopiedFromConstantMemory - Recursively walk the uses of a (derived)
72 const auto [Value, IsOffset] = Elem; in isOnlyCopiedFromConstantMemory() local
73 for (auto &U : Value->uses()) { in isOnlyCopiedFromConstantMemory()
[all …]
H A DInstCombinePHI.cpp1 //===- InstCombinePHI.cpp -------------------------------------------------===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
11 //===----------------------------------------------------------------------===//
31 MaxNumPhis("instcombine-max-num-phis", cl::init(512),
35 "Number of phi-of-insertvalue turned into insertvalue-of-phis");
37 "Number of phi-of-extractvalue turned into extractvalue-of-phi");
44 auto *FirstInst = cast<Instruction>(PN.getIncomingValue(0)); in PHIArgMergedDebugLoc()
45 Inst->setDebugLoc(FirstInst->getDebugLoc()); in PHIArgMergedDebugLoc()
46 // We do not expect a CallInst here, otherwise, N-way merging of DebugLoc in PHIArgMergedDebugLoc()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/
H A DInterleavedAccessPass.cpp1 //===- InterleavedAccessPass.cpp ------------------------------------------===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
13 // An interleaved load reads data from memory into several vectors, with
14 // DE-interleaving the data on a factor. An interleaved store writes several
15 // vectors to memory with RE-interleaving the data on a factor.
23 // E.g. An interleaved load (Factor = 2):
24 // %wide.vec = load <8 x i32>, <8 x i32>* %ptr
45 //===----------------------------------------------------------------------===//
77 #define DEBUG_TYPE "interleaved-access"
[all …]
H A DExpandMemCmp.cpp1 //===--- ExpandMemCmp.cpp - Expand memcmp() to load/stores ----------------===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
9 // This pass tries to expand memcmp() calls into optimally-sized loads and
12 //===----------------------------------------------------------------------===//
42 #define DEBUG_TYPE "expand-memcmp"
51 "memcmp-num-loads-per-block", cl::Hidden, cl::init(1),
56 "max-loads-per-memcmp", cl::Hidden,
60 "max-loads-per-memcmp-opt-size", cl::Hidden,
61 cl::desc("Set maximum number of loads used in expanded memcmp for -Os/Oz"));
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Vectorize/
H A DVectorCombine.cpp1 //===------- VectorCombine.cpp - Optimize partial vector operations -------===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
10 // transforms implemented here may not fit in traditional loop-based or SLP
13 //===----------------------------------------------------------------------===//
37 #define DEBUG_TYPE "vector-combine"
52 "disable-vector-combine", cl::init(false), cl::Hidden,
56 "disable-binop-extract-shuffle", cl::init(false), cl::Hidden,
60 "vector-combine-max-scan-instrs", cl::init(30), cl::Hidden,
91 // TODO: Direct calls from the top-level "run" loop use a plain "Instruction"
[all …]
H A DVPlanSLP.cpp1 //===- VPlanSLP.cpp - SLP Analysis based on VPlan -------------------------===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
11 /// Look-ahead SLP: auto-vectorization in the presence of commutative
15 //===----------------------------------------------------------------------===//
37 #define DEBUG_TYPE "vplan-slp"
39 // Number of levels to look ahead when re-ordering multi node operands.
51 return cast<VPInstruction>(V)->getUnderlyingInstr(); in addCombined()
55 Type *T = cast<VPInstruction>(V)->getUnderlyingInstr()->getType(); in addCombined()
56 assert(!T->isVectorTy() && "Only scalar types supported for now"); in addCombined()
[all …]
H A DLoadStoreVectorizer.cpp1 //===- LoadStoreVectorizer.cpp - GPU Load & Store Vectorizer --------------===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
10 // loads/stores. Although there's nothing GPU-specific in here, this pass is
18 // that immediately following our new vector load we'll need to extract out the
19 // individual elements of the load, so we can operate on them individually.
23 // usually better just to load each element individually into its own scalar
27 // "vector load" loads directly into a series of scalar registers. In effect,
36 // Some CPU architectures, such as ARM, have instructions that load into
37 // multiple scalar registers, similar to a GPU vectorized load. In theory ARM
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Target/AMDGPU/
H A DAMDGPULowerKernelAttributes.cpp1 //===-- AMDGPULowerKernelAttributes.cpp ------------------------------------------===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
11 /// get_local_size-like functions.
13 //===----------------------------------------------------------------------===//
29 #define DEBUG_TYPE "amdgpu-lower-kernel-attributes"
79 auto IntrinsicId = IsV5OrAbove ? Intrinsic::amdgcn_implicitarg_ptr in getBasePtrIntrinsic()
88 Function *F = CI->getParent()->getParent(); in processUse()
90 auto MD = F->getMetadata("reqd_work_group_size"); in processUse()
91 const bool HasReqdWorkGroupSize = MD && MD->getNumOperands() == 3; in processUse()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Target/ARM/
H A DARMParallelDSP.cpp1 //===- ARMParallelDSP.cpp - Parallel DSP Pass -----------------------------===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
10 /// Armv6 introduced instructions to perform 32-bit SIMD operations. The
12 /// DSP intrinsics, which map on these 32-bit SIMD operations.
15 //===----------------------------------------------------------------------===//
42 #define DEBUG_TYPE "arm-parallel-dsp"
47 DisableParallelDSP("disable-arm-parallel-dsp", cl::Hidden, cl::init(false),
51 NumLoadLimit("arm-parallel-dsp-load-limit", cl::Hidden, cl::init(16),
84 /// Represent a sequence of multiply-accumulate operations with the aim to
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Analysis/
H A DLoads.cpp1 //===- Loads.cpp - Local load analysis ------------------------------------===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
9 // This file defines simple local analyses for load instructions.
11 //===----------------------------------------------------------------------===//
31 Align BA = Base->getPointerAlignment(DL); in isAligned()
36 /// a simple load or store.
42 assert(V->getType()->isPointerTy() && "Base must be pointer"); in isDereferenceableAndAlignedPointer()
45 if (MaxDepth-- == 0) in isDereferenceableAndAlignedPointer()
57 const Value *Base = GEP->getPointerOperand(); in isDereferenceableAndAlignedPointer()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Target/NVPTX/
H A DNVPTXLowerArgs.cpp1 //===-- NVPTXLowerArgs.cpp - Lower arguments ------------------------------===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
12 // http://docs.nvidia.com/cuda/parallel-thread-execution/#state-spaces
14 // Kernel parameters are read-only and accessible only via ld.param
29 // 1. Convert non-byval pointer arguments of CUDA kernels to pointers in the
35 // %v = load float, float* %input, align 4
44 // %v = load float, float* %input3, align 4
52 // %v = load float, float addrspace(1)* %input2, align 4
74 // %b = load ptr, ptr %b_ptr
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Transforms/IPO/
H A DArgumentPromotion.cpp1 //===- ArgumentPromotion.cpp - Promote by-reference arguments -------------===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
29 //===----------------------------------------------------------------------===//
91 /// A representative guaranteed-executed load or store instruction for use by
103 APInt APOffset(DL.getIndexTypeSizeInBits(Ptr->getType()), Offset); in createByteGEP()
109 /// DoPromotion - This method actually performs the promotion of the specified
118 FunctionType *FTy = F->getFunctionType(); in doPromotion()
121 // Attribute - Keep track of the parameter attributes for the arguments in doPromotion()
125 // Mapping from old to new argument indices. -1 for promoted or removed in doPromotion()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Target/AArch64/
H A DSVEIntrinsicOpts.cpp1 //===----- SVEIntrinsicOpts - SVE ACLE Intrinsics Opts --------------------===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
13 // - removes unnecessary ptrue intrinsics (llvm.aarch64.sve.ptrue), e.g:
18 // - optimizes ptest intrinsics where the operands are being needlessly
21 //===----------------------------------------------------------------------===//
43 #define DEBUG_TYPE "aarch64-sve-intrinsic-opts"
64 /// Operates at the function-scope. I.e., optimizations are applied local to
98 // Find all users of this intrinsic that are calls to convert-to-svbool in isPTruePromoted()
101 for (User *User : PTrue->users()) { in isPTruePromoted()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Target/AMDGPU/Utils/
H A DAMDGPUMemoryUtils.cpp1 //===-- AMDGPUMemoryUtils.cpp - -------------------------------------------===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
24 #define DEBUG_TYPE "amdgpu-memory-utils"
31 return DL.getValueOrABITypeAlignment(GV->getPointerAlignment(DL), in getAlign()
32 GV->getValueType()); in getAlign()
38 const DataLayout &DL = M->getDataLayout(); in isDynamicLDS()
39 if (GV.getType()->getPointerAddressSpace() != AMDGPUAS::LOCAL_ADDRESS) in isDynamicLDS()
45 if (GV.getType()->getPointerAddressSpace() != AMDGPUAS::LOCAL_ADDRESS) { in isLDSVariableToLower()
52 // A constant undef variable can't be written to, and any load is in isLDSVariableToLower()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Object/
H A DMachOObjectFile.cpp1 //===- MachOObjectFile.cpp - Mach-O object file binding -------------------===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
12 //===----------------------------------------------------------------------===//
87 return malformedError("Structure read out-of-range"); in getStructOrErr()
194 if (auto CmdOrErr = getStructOrErr<MachO::load_command>(Obj, Ptr)) { in getLoadCommandInfo()
195 if (CmdOrErr->cmdsize + Ptr > Obj.getData().end()) in getLoadCommandInfo()
196 return malformedError("load command " + Twine(LoadCommandIndex) + in getLoadCommandInfo()
198 if (CmdOrErr->cmdsize < 8) in getLoadCommandInfo()
199 return malformedError("load command " + Twine(LoadCommandIndex) + in getLoadCommandInfo()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Target/Hexagon/
H A DHexagonVectorCombine.cpp1 //===-- HexagonVectorCombine.cpp ------------------------------------------===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
9 // that assist in vector-based optimizations.
13 //===----------------------------------------------------------------------===//
57 #define DEBUG_TYPE "hexagon-vc"
62 cl::opt<bool> DumpModule("hvc-dump-module", cl::Hidden);
63 cl::opt<bool> VAEnabled("hvc-va", cl::Hidden, cl::init(true)); // Align
64 cl::opt<bool> VIEnabled("hvc-vi", cl::Hidden, cl::init(true)); // Idioms
65 cl::opt<bool> VADoFullStores("hvc-va-full-stores", cl::Hidden);
[all …]
/freebsd/contrib/llvm-project/llvm/tools/llvm-rtdyld/
H A Dllvm-rtdyld.cpp1 //===-- llvm-rtdyld.cpp - MCJIT Testing Tool ------------------------------===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
9 // This is a testing tool for use with the MC-JIT LLVM components.
11 //===----------------------------------------------------------------------===//
65 "Load, link, and execute the inputs."),
67 "Load, link, and print line information for each function."),
69 "Load, link, and print line information for each function "
72 "Like -printlineinfo but does not load the object first"),
74 "Load, link and verify the resulting memory image.")),
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Target/X86/
H A DX86LowerAMXType.cpp1 //===- Target/X86/X86LowerAMXType.cpp - -------------------------*- C++ -*-===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
9 /// \file Pass to transform <256 x i32> load/store
14 /// load/store <256 x i32> instruction to AMX load/store. If the bitcast can
15 /// not be combined with load/store, we transform the bitcast to amx load/store
16 /// and <256 x i32> store/load.
18 /// If Front End not use O0 but the Mid/Back end use O0, (e.g. "Clang -O2 -S
19 /// -emit-llvm t.c" + "llc t.ll") we should make sure the amx data is volatile,
25 /// ----------------------------------------------------------
[all …]
H A DX86SpeculativeLoadHardening.cpp1 //====- X86SpeculativeLoadHardening.cpp - A Spectre v1 mitigation ---------===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
12 /// or other condition) to reach a load with invalid inputs and leak the data
13 /// accessed by that load using a side channel out of the speculative domain.
17 /// https://googleprojectzero.blogspot.com/2018/01/reading-privileged-memory-with-side.html
20 //===----------------------------------------------------------------------===//
63 #define PASS_KEY "x86-slh"
71 "Number of post-load register values hardened");
78 "x86-speculative-load-hardening",
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Target/SystemZ/
H A DSystemZISelDAGToDAG.cpp1 //===-- SystemZISelDAGToDAG.cpp - A dag to dag inst selector for SystemZ --===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
11 //===----------------------------------------------------------------------===//
23 #define DEBUG_TYPE "systemz-isel"
24 #define PASS_NAME "SystemZ DAG->DAG Pattern Instruction Selection"
34 // base+displacement+index for load and store operands
37 // base+displacement+index for load address operands
47 // flags -- single/pair, 128-bit, etc. -- but it hardly seems worth it.
79 Base.getNode()->dump(DAG); in dump()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Utils/
H A DPromoteMemoryToRegister.cpp1 //===- PromoteMemoryToRegister.cpp - Convert allocas to registers ---------===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
12 // traversing the function in depth-first order to rewrite loads and stores as
15 //===----------------------------------------------------------------------===//
66 // Only allow direct and non-volatile loads and stores... in isAllocaPromotable()
67 for (const User *U : AI->users()) { in isAllocaPromotable()
71 if (LI->isVolatile() || LI->getType() != AI->getAllocatedType()) in isAllocaPromotable()
74 if (SI->getValueOperand() == AI || in isAllocaPromotable()
75 SI->getValueOperand()->getType() != AI->getAllocatedType()) in isAllocaPromotable()
[all …]

12345678910>>...41