Go to the documentation of this file.
15 #ifndef LLVM_CODEGEN_STABLEHASHING_H
16 #define LLVM_CODEGEN_STABLEHASHING_H
37 Hash = Hash ^ (
Value & 0xFF);
42 for (
unsigned I = 0;
I < 8; ++
I) {
83 template <
typename InputIteratorT>
85 InputIteratorT Last) {
94 for (
size_t I = 0;
I <
C; ++
I)
stable_hash stable_hash_combine_string(const StringRef &S)
This is an optimization pass for GlobalISel generic memory operations.
stable_hash stable_hash_combine_range(InputIteratorT First, InputIteratorT Last)
Compute a stable_hash for a sequence of values.
stable_hash stable_hash_combine(stable_hash A, stable_hash B)
This currently compiles esp xmm0 movsd esp eax eax esp ret We should use not the dag combiner This is because dagcombine2 needs to be able to see through the X86ISD::Wrapper which DAGCombine can t really do The code for turning x load into a single vector load is target independent and should be moved to the dag combiner The code for turning x load into a vector load can only handle a direct load from a global or a direct load from the stack It should be generalized to handle any load from P
stable_hash stable_hash_combine_array(const stable_hash *P, size_t C)
uint64_t stable_hash
An opaque object representing a stable hash code.
(vector float) vec_cmpeq(*A, *B) C
static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")
into llvm powi allowing the code generator to produce balanced multiplication trees First
const uint64_t FNV_OFFSET_64
static GCRegistry::Add< StatepointGC > D("statepoint-example", "an example strategy for statepoint")
const uint64_t FNV_PRIME_64
StringRef - Represent a constant reference to a string, i.e.
add sub stmia L5 ldr r0 bl L_printf $stub Instead of a and a wouldn t it be better to do three moves *Return an aggregate type is even return S
void stable_hash_append(stable_hash &Hash, const char Value)
LLVM Value Representation.