#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 staticinline __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 | |
staticconstuint32_t | IV [8] |
staticconstuint8_t | MSG_SCHEDULE [7][16] |
#define BLAKE3_USE_NEON 0 |
Definition at line62 of fileblake3_impl.h.
#define INLINE staticinline __attribute__((always_inline)) |
Definition at line32 of fileblake3_impl.h.
#define MAX_SIMD_DEGREE 1 |
Definition at line71 of fileblake3_impl.h.
#define MAX_SIMD_DEGREE_OR_2 (MAX_SIMD_DEGREE > 2 ?MAX_SIMD_DEGREE : 2) |
Definition at line76 of fileblake3_impl.h.
enumblake3_flags |
Enumerator | |
---|---|
CHUNK_START | |
CHUNK_END | |
PARENT | |
ROOT | |
KEYED_HASH | |
DERIVE_KEY_CONTEXT | |
DERIVE_KEY_MATERIAL |
Definition at line17 of fileblake3_impl.h.
LLVM_LIBRARY_VISIBILITY void blake3_compress_in_place | ( | uint32_t | cv[8], |
constuint8_t | block[BLAKE3_BLOCK_LEN], | ||
uint8_t | block_len, | ||
uint64_t | counter, | ||
uint8_t | flags | ||
) |
Definition at line137 of fileblake3_dispatch.c.
ReferencesAVX512VL,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, andSSE41.
LLVM_LIBRARY_VISIBILITY void blake3_compress_in_place_portable | ( | uint32_t | cv[8], |
constuint8_t | block[BLAKE3_BLOCK_LEN], | ||
uint8_t | block_len, | ||
uint64_t | counter, | ||
uint8_t | flags | ||
) |
Definition at line84 of fileblake3_portable.c.
Referencesblock, andcompress_pre().
LLVM_LIBRARY_VISIBILITY void blake3_compress_xof | ( | constuint32_t | cv[8], |
constuint8_t | block[BLAKE3_BLOCK_LEN], | ||
uint8_t | block_len, | ||
uint64_t | counter, | ||
uint8_t | flags, | ||
uint8_t | out[64] | ||
) |
Definition at line166 of fileblake3_dispatch.c.
ReferencesAVX512VL,blake3_compress_xof_avx512,blake3_compress_xof_portable,blake3_compress_xof_sse2,blake3_compress_xof_sse41,block,get_cpu_features(),MAYBE_UNUSED,SSE2, andSSE41.
LLVM_LIBRARY_VISIBILITY void blake3_compress_xof_portable | ( | constuint32_t | cv[8], |
constuint8_t | block[BLAKE3_BLOCK_LEN], | ||
uint8_t | block_len, | ||
uint64_t | counter, | ||
uint8_t | flags, | ||
uint8_t | out[64] | ||
) |
Definition at line100 of fileblake3_portable.c.
Referencesblock,compress_pre(), andstore32().
LLVM_LIBRARY_VISIBILITY void blake3_hash_many | ( | constuint8_t *const * | inputs, |
size_t | num_inputs, | ||
size_t | blocks, | ||
constuint32_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 line195 of fileblake3_dispatch.c.
ReferencesAVX2,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, andSSE41.
LLVM_LIBRARY_VISIBILITY void blake3_hash_many_portable | ( | constuint8_t *const * | inputs, |
size_t | num_inputs, | ||
size_t | blocks, | ||
constuint32_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 line145 of fileblake3_portable.c.
ReferencesBLAKE3_OUT_LEN,blocks, andhash_one_portable().
LLVM_LIBRARY_VISIBILITY size_t blake3_simd_degree | ( | void | ) |
Definition at line248 of fileblake3_dispatch.c.
ReferencesAVX2,AVX512F,AVX512VL,get_cpu_features(),MAYBE_UNUSED,SSE2, andSSE41.
Definition at line145 of fileblake3_impl.h.
Referenced bycompress_pre().
Definition at line143 of fileblake3_impl.h.
Referenced bycompress_pre().
Definition at line94 of fileblake3_impl.h.
Referenced byround_down_to_power_of_2().
Definition at line149 of fileblake3_impl.h.
Referenced bycompress_pre(), andload_key_words().
Definition at line155 of fileblake3_impl.h.
Referencesload32().
Referenced byllvm_blake3_hasher_init_derive_key_raw(), andllvm_blake3_hasher_init_keyed().
Definition at line124 of fileblake3_impl.h.
Referenced byhasher_merge_cv_stack().
Definition at line139 of fileblake3_impl.h.
Referenceshighest_one().
Referenced byleft_len(), andllvm_blake3_hasher_update().
Definition at line167 of fileblake3_impl.h.
Referenced byblake3_compress_xof_portable(), andstore_cv_words().
Definition at line175 of fileblake3_impl.h.
Referencesstore32().
Referenced byhash_one_portable(), andoutput_chaining_value().
Definition at line78 of fileblake3_impl.h.
Referenced byaddFullyUnrolledInstructionsToIgnore(),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::vputils::isUniformAfterVectorization(),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(), andllvm::VPScalarIVStepsRecipe::VPScalarIVStepsRecipe().
Definition at line82 of fileblake3_impl.h.
Referenced byround_fn(),round_fn16(),round_fn4(), andround_fn8().