<commit_before>/*
 ***********************************************************************************************************************
 *
 *  Copyright (c) 2016-2019 Advanced Micro Devices, Inc. All Rights Reserved.
 *
 *  Permission is hereby granted, free of charge, to any person obtaining a copy
 *  of this software and associated documentation files (the "Software"), to deal
 *  in the Software without restriction, including without limitation the rights
 *  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 *  copies of the Software, and to permit persons to whom the Software is
 *  furnished to do so, subject to the following conditions:
 *
 *  The above copyright notice and this permission notice shall be included in all
 *  copies or substantial portions of the Software.
 *
 *  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 *  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 *  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 *  SOFTWARE.
 *
 **********************************************************************************************************************/
/**
 ***********************************************************************************************************************
 * @file  llpc.h
 * @brief LLPC header file: contains LLPC basic definitions (including interfaces and data types).
 ***********************************************************************************************************************
 */
#pragma once

#include "vulkan.h"

// Confliction of Xlib and LLVM headers
#undef True
#undef False
#undef DestroyAll
#undef Status
#undef Bool

/// LLPC major interface version.
#define LLPC_INTERFACE_MAJOR_VERSION 38

/// LLPC minor interface version.
#define LLPC_INTERFACE_MINOR_VERSION 0

//**
//**********************************************************************************************************************
//* @page VersionHistory
//* %Version History
//* | %Version | Change Description                                                                                    |
//* | -------- | ----------------------------------------------------------------------------------------------------- |
//* |     38.0 | Removed CreateShaderCache in ICompiler and pShaderCache in pipeline build info                        |
//* |     37.0 | Removed the -enable-dynamic-loop-unroll option                                                        |
//* |     36.0 | Add 128 bit hash as clientHash in PipelineShaderOptions                                               |
//* |     35.0 | Added disableLicm to PipelineShaderOptions                                                            |
//* |     33.0 | Add enableLoadScalarizer option into PipelineShaderOptions.                                           |
//* |     32.0 | Add ShaderModuleOptions in ShaderModuleBuildInfo                                                      |
//* |     31.0 | Add PipelineShaderOptions::allowVaryWaveSize                                                          |
//* |     30.0 | Removed PipelineOptions::autoLayoutDesc                                                               |
//* |     28.0 | Added reconfigWorkgroupLayout to PipelineOptions and useSiScheduler to PipelineShaderOptions          |
//* |     27.0 | Remove the includeIrBinary option from PipelineOptions as only IR disassembly is now dumped           |
//* |     25.0 | Add includeIrBinary option into PipelineOptions for including IR binaries into ELF files.             |
//* |     24.0 | Add forceLoopUnrollCount option into PipelineShaderOptions.                                           |
//* |     23.0 | Add flag robustBufferAccess in PipelineOptions to check out of bounds of private array.               |
//* |     22.0 | Internal revision.                                                                                    |
//* |     21.0 | Add stage in Pipeline shader info and struct PipelineBuildInfo to simplify pipeline dump interface.   |
//**/

namespace Llpc
{

static const uint32_t  Version = LLPC_INTERFACE_MAJOR_VERSION;
static const uint32_t  MaxColorTargets = 8;
static const uint32_t  MaxViewports = 16;
static const char      VkIcdName[]     = "amdvlk";
static const uint32_t  InternalDescriptorSetId = static_cast<uint32_t>(-1);
<commit_msg>llpc: Document policy of required zero-initialization of structures<commit_after>/*
 ***********************************************************************************************************************
 *
 *  Copyright (c) 2016-2019 Advanced Micro Devices, Inc. All Rights Reserved.
 *
 *  Permission is hereby granted, free of charge, to any person obtaining a copy
 *  of this software and associated documentation files (the "Software"), to deal
 *  in the Software without restriction, including without limitation the rights
 *  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 *  copies of the Software, and to permit persons to whom the Software is
 *  furnished to do so, subject to the following conditions:
 *
 *  The above copyright notice and this permission notice shall be included in all
 *  copies or substantial portions of the Software.
 *
 *  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 *  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 *  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 *  SOFTWARE.
 *
 **********************************************************************************************************************/
/**
 ***********************************************************************************************************************
 * @file  llpc.h
 * @brief LLPC header file: contains LLPC basic definitions (including interfaces and data types).
 ***********************************************************************************************************************
 */
#pragma once

#include "vulkan.h"

// Confliction of Xlib and LLVM headers
#undef True
#undef False
#undef DestroyAll
#undef Status
#undef Bool

/// LLPC major interface version.
#define LLPC_INTERFACE_MAJOR_VERSION 38

/// LLPC minor interface version.
#define LLPC_INTERFACE_MINOR_VERSION 0

//**
//**********************************************************************************************************************
//* @page VersionHistory
//* %Version History
//* | %Version | Change Description                                                                                    |
//* | -------- | ----------------------------------------------------------------------------------------------------- |
//* |     38.0 | Removed CreateShaderCache in ICompiler and pShaderCache in pipeline build info                        |
//* |     37.0 | Removed the -enable-dynamic-loop-unroll option                                                        |
//* |     36.0 | Add 128 bit hash as clientHash in PipelineShaderOptions                                               |
//* |     35.0 | Added disableLicm to PipelineShaderOptions                                                            |
//* |     33.0 | Add enableLoadScalarizer option into PipelineShaderOptions.                                           |
//* |     32.0 | Add ShaderModuleOptions in ShaderModuleBuildInfo                                                      |
//* |     31.0 | Add PipelineShaderOptions::allowVaryWaveSize                                                          |
//* |     30.0 | Removed PipelineOptions::autoLayoutDesc                                                               |
//* |     28.0 | Added reconfigWorkgroupLayout to PipelineOptions and useSiScheduler to PipelineShaderOptions          |
//* |     27.0 | Remove the includeIrBinary option from PipelineOptions as only IR disassembly is now dumped           |
//* |     25.0 | Add includeIrBinary option into PipelineOptions for including IR binaries into ELF files.             |
//* |     24.0 | Add forceLoopUnrollCount option into PipelineShaderOptions.                                           |
//* |     23.0 | Add flag robustBufferAccess in PipelineOptions to check out of bounds of private array.               |
//* |     22.0 | Internal revision.                                                                                    |
//* |     21.0 | Add stage in Pipeline shader info and struct PipelineBuildInfo to simplify pipeline dump interface.   |
//*
//* IMPORTANT NOTE: All structures defined in this file that are passed as input into LLPC must be zero-initialized
//* with code such as the following before filling in the structure's fields:
//*
//*   SomeLlpcStructure someLlpcStructure = {};
//*
//* It is sufficient to perform this initialization on a containing structure.
//*
//* LLPC is free to add new fields to such structures without increasing the client interface major version, as long
//* as setting the newly added fields to a 0 (or false) value is safe, i.e. it preserves the old behavior.
//*
//**/

namespace Llpc
{

static const uint32_t  Version = LLPC_INTERFACE_MAJOR_VERSION;
static const uint32_t  MaxColorTargets = 8;
static const uint32_t  MaxViewports = 16;
static const char      VkIcdName[]     = "amdvlk";
static const uint32_t  InternalDescriptorSetId = static_cast<uint32_t>(-1);

{'fraction_non_alphanumeric': 0.20230512587200486, 'fraction_numerical': 0.014861995753715499, 'mean_word_length': 2.216910569105691, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 40, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7608908', 'n_tokens_mistral': 2228, 'n_tokens_neox': 2071, 'n_words': 843}