LLVM 20.0.0git
|
#include <assert.h>
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#include <string.h>
#include "llvm-c/blake3.h"
#include "llvm/Support/Compiler.h"
#include "llvm_blake3_prefix.h"
Go to the source code of this file.
Macros | |
#define | INLINE static inline __attribute__((always_inline)) |
#define | BLAKE3_USE_NEON 0 |
#define | MAX_SIMD_DEGREE 1 |
#define | MAX_SIMD_DEGREE_OR_2 (MAX_SIMD_DEGREE > 2 ? MAX_SIMD_DEGREE : 2) |
Enumerations | |
enum | blake3_flags { CHUNK_START = 1 << 0 , CHUNK_END = 1 << 1 , PARENT = 1 << 2 , ROOT = 1 << 3 , KEYED_HASH = 1 << 4 , DERIVE_KEY_CONTEXT = 1 << 5 , DERIVE_KEY_MATERIAL = 1 << 6 } |
Variables | |
static const uint32_t | IV [8] |
static const uint8_t | MSG_SCHEDULE [7][16] |
#define BLAKE3_USE_NEON 0 |
Definition at line 62 of file blake3_impl.h.
#define INLINE static inline __attribute__((always_inline)) |
Definition at line 32 of file blake3_impl.h.
#define MAX_SIMD_DEGREE 1 |
Definition at line 71 of file blake3_impl.h.
#define MAX_SIMD_DEGREE_OR_2 (MAX_SIMD_DEGREE > 2 ? MAX_SIMD_DEGREE : 2) |
Definition at line 76 of file blake3_impl.h.
enum blake3_flags |
Enumerator | |
---|---|
CHUNK_START | |
CHUNK_END | |
PARENT | |
ROOT | |
KEYED_HASH | |
DERIVE_KEY_CONTEXT | |
DERIVE_KEY_MATERIAL |
Definition at line 17 of file blake3_impl.h.
LLVM_LIBRARY_VISIBILITY void blake3_compress_in_place | ( | uint32_t | cv[8], |
const uint8_t | block[BLAKE3_BLOCK_LEN], | ||
uint8_t | block_len, | ||
uint64_t | counter, | ||
uint8_t | flags | ||
) |
Definition at line 137 of file blake3_dispatch.c.
References AVX512VL, blake3_compress_in_place_avx512, blake3_compress_in_place_portable, blake3_compress_in_place_sse2, blake3_compress_in_place_sse41, block, get_cpu_features(), MAYBE_UNUSED, SSE2, and SSE41.
LLVM_LIBRARY_VISIBILITY void blake3_compress_in_place_portable | ( | uint32_t | cv[8], |
const uint8_t | block[BLAKE3_BLOCK_LEN], | ||
uint8_t | block_len, | ||
uint64_t | counter, | ||
uint8_t | flags | ||
) |
Definition at line 84 of file blake3_portable.c.
References block, and compress_pre().
LLVM_LIBRARY_VISIBILITY void blake3_compress_xof | ( | const uint32_t | cv[8], |
const uint8_t | block[BLAKE3_BLOCK_LEN], | ||
uint8_t | block_len, | ||
uint64_t | counter, | ||
uint8_t | flags, | ||
uint8_t | out[64] | ||
) |
Definition at line 166 of file blake3_dispatch.c.
References AVX512VL, blake3_compress_xof_avx512, blake3_compress_xof_portable, blake3_compress_xof_sse2, blake3_compress_xof_sse41, block, get_cpu_features(), MAYBE_UNUSED, SSE2, and SSE41.
LLVM_LIBRARY_VISIBILITY void blake3_compress_xof_portable | ( | const uint32_t | cv[8], |
const uint8_t | block[BLAKE3_BLOCK_LEN], | ||
uint8_t | block_len, | ||
uint64_t | counter, | ||
uint8_t | flags, | ||
uint8_t | out[64] | ||
) |
Definition at line 100 of file blake3_portable.c.
References block, compress_pre(), and store32().
LLVM_LIBRARY_VISIBILITY void blake3_hash_many | ( | const uint8_t *const * | inputs, |
size_t | num_inputs, | ||
size_t | blocks, | ||
const uint32_t | key[8], | ||
uint64_t | counter, | ||
bool | increment_counter, | ||
uint8_t | flags, | ||
uint8_t | flags_start, | ||
uint8_t | flags_end, | ||
uint8_t * | out | ||
) |
Definition at line 195 of file blake3_dispatch.c.
References AVX2, AVX512F, AVX512VL, blake3_hash_many_avx2, blake3_hash_many_avx512, blake3_hash_many_neon, blake3_hash_many_portable, blake3_hash_many_sse2, blake3_hash_many_sse41, blocks, get_cpu_features(), MAYBE_UNUSED, SSE2, and SSE41.
LLVM_LIBRARY_VISIBILITY void blake3_hash_many_portable | ( | const uint8_t *const * | inputs, |
size_t | num_inputs, | ||
size_t | blocks, | ||
const uint32_t | key[8], | ||
uint64_t | counter, | ||
bool | increment_counter, | ||
uint8_t | flags, | ||
uint8_t | flags_start, | ||
uint8_t | flags_end, | ||
uint8_t * | out | ||
) |
Definition at line 145 of file blake3_portable.c.
References BLAKE3_OUT_LEN, blocks, and hash_one_portable().
LLVM_LIBRARY_VISIBILITY size_t blake3_simd_degree | ( | void | ) |
Definition at line 248 of file blake3_dispatch.c.
References AVX2, AVX512F, AVX512VL, get_cpu_features(), MAYBE_UNUSED, SSE2, and SSE41.
Definition at line 145 of file blake3_impl.h.
Referenced by compress_pre().
Definition at line 143 of file blake3_impl.h.
Referenced by compress_pre().
Definition at line 94 of file blake3_impl.h.
Referenced by round_down_to_power_of_2().
Definition at line 149 of file blake3_impl.h.
Referenced by compress_pre(), and load_key_words().
Definition at line 155 of file blake3_impl.h.
References load32().
Referenced by llvm_blake3_hasher_init_derive_key_raw(), and llvm_blake3_hasher_init_keyed().
Definition at line 124 of file blake3_impl.h.
Referenced by hasher_merge_cv_stack().
Definition at line 139 of file blake3_impl.h.
References highest_one().
Referenced by left_len(), and llvm_blake3_hasher_update().
Definition at line 167 of file blake3_impl.h.
Referenced by blake3_compress_xof_portable(), and store_cv_words().
Definition at line 175 of file blake3_impl.h.
References store32().
Referenced by hash_one_portable(), and output_chaining_value().
Definition at line 78 of file blake3_impl.h.
Referenced by addFullyUnrolledInstructionsToIgnore(), addPHINodeEntriesForMappedBlock(), blake3_hash16_avx512(), blake3_hash4_avx512(), blake3_hash4_sse2(), blake3_hash4_sse41(), blake3_hash8_avx2(), blake3_hash8_avx512(), compress_pre(), llvm::OpenMPIRBuilder::createCanonicalLoop(), llvm::VPRecipeBuilder::createHeaderMask(), llvm::VPBuilder::createScalarIVSteps(), detectShiftUntilZeroIdiom(), llvm::JumpThreadingPass::duplicateCondBranchOnPHIIntoPred(), llvm::VPlan::execute(), llvm::InstCombinerImpl::foldAggregateConstructionIntoAggregateReuse(), getAggregateSize(), getElementIndex(), llvm::DenseMapInfo< PointerIntPair< PointerTy, IntBits, IntType >, void >::getHashValue(), GetInductionVariable(), getTrueOrFalseValue(), insertUniqueBackedgeBlock(), llvm::isUniformLoop(), IsValueFullyAvailableInBlock(), likeBitCastFromVector(), llvm_blake3_hasher_init(), llvm_blake3_hasher_init_derive_key_raw(), LLVMGetIndices(), LLVMGetNumIndices(), preparePlanForEpilogueVectorLoop(), ReduceLoopStrength(), removeRedundantInductionCasts(), llvm::replaceSignedInst(), simplifyInstructionWithOperands(), llvm::SplitBlockAndInsertSimpleForLoop(), llvm::SCCPInstVisitor::trackValueOfGlobalVariable(), llvm::MemorySSAUpdater::updatePhisWhenInsertingUniqueBackedgeBlock(), llvm::slpvectorizer::BoUpSLP::vectorizeTree(), llvm::InstCombinerImpl::visitExtractValueInst(), llvm::InstCombinerImpl::visitPHINode(), llvm::VPDerivedIVRecipe::VPDerivedIVRecipe(), and llvm::VPScalarIVStepsRecipe::VPScalarIVStepsRecipe().
Definition at line 82 of file blake3_impl.h.
Referenced by round_fn(), round_fn16(), round_fn4(), and round_fn8().