)]}'
{
  "log": [
    {
      "commit": "7c95a0de024989e3fd5b2c833b2c3d273215f1de",
      "tree": "2be060c66328dffd20827fcf4688091595a5bee8",
      "parents": [
        "af397a5ac19fc11afd879e52aeaa4edd21f2b4fd"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Fri Apr 09 18:01:45 2021"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 09 18:01:45 2021"
      },
      "message": "Update LLVM (#733)\n\n* Replace some hack-scf tests with targeted versions of those tests\r\n  (instead of end-to-end)"
    },
    {
      "commit": "af397a5ac19fc11afd879e52aeaa4edd21f2b4fd",
      "tree": "8f24e35bef2a4fa7726a2458f93874bd645d6e58",
      "parents": [
        "aab5bb8f20631f71eb710e5908f03a95981c22d6"
      ],
      "author": {
        "name": "Kévin Petit",
        "email": "kpet@free.fr",
        "time": "Wed Mar 31 19:50:26 2021"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 31 19:50:26 2021"
      },
      "message": "Update LLVM and remove 3d image write workaround (#726)\n\nFixes #705\r\n\r\nSigned-off-by: Kévin Petit \u003ckevin.petit@arm.com\u003e"
    },
    {
      "commit": "aab5bb8f20631f71eb710e5908f03a95981c22d6",
      "tree": "fe2bcdc42a55890730f014575d0cff74c72dd03b",
      "parents": [
        "589d72ecbf5b1ea813d1b3d1b7a43cbd6d220c87"
      ],
      "author": {
        "name": "Kévin Petit",
        "email": "kpet@free.fr",
        "time": "Tue Mar 30 15:26:11 2021"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 30 15:26:11 2021"
      },
      "message": "Add options for fp16 and fp64 and disable unsupported CL3 features (#722)\n\n* Add options for fp16 and fp64 and disable unsupported CL3 features\r\n\r\nSome OpenCL applications (e.g. clpeak) conditionally enable FP16/FP64 in\r\nkernels based on the presence of the cl_khr_fp{16,64} macros. When using\r\nthe SPIR target Clang always enables all OpenCL extensions and features\r\npotantially resulting in applications attempting to use features not\r\nsupported on the target device.\r\n\r\nSince Clang always enables all features when using the SPIR target,\r\nit means that clspv must either pass a list of features to be disabled\r\nto Clang (not sure this would be accepted upstream) or disable features\r\nafter the target-specific defaults have been applied. The latter is the\r\napproach proposed in this change: extensions and features are disabled\r\nafter the creation of the TargetInfo and before the CompilerInstance\r\nis configured to use it.\r\n\r\nThe new options are enabled by default for backwards compatibility.\r\n\r\nSigned-off-by: Kévin Petit \u003ckevin.petit@arm.com\u003e\r\n"
    },
    {
      "commit": "589d72ecbf5b1ea813d1b3d1b7a43cbd6d220c87",
      "tree": "a3012750800e0d9a788769579ee790150d5dd45d",
      "parents": [
        "7e3384083dea346970464d4ae3dfe90c9013a98d"
      ],
      "author": {
        "name": "Marco Antognini",
        "email": "marco.antognini@arm.com",
        "time": "Tue Mar 23 19:28:16 2021"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 23 19:28:16 2021"
      },
      "message": "Add support for cl_arm_non_uniform_work_group_size (#720)\n\nSupport non-uniform work-groups in OpenCL 1.x as defined in the\r\ncl_arm_non_uniform_work_group_size extension specification.\r\n\r\nSigned-off-by: Marco Antognini \u003cmarco.antognini@arm.com\u003e"
    },
    {
      "commit": "7e3384083dea346970464d4ae3dfe90c9013a98d",
      "tree": "d7ebad34001b3a8caa35cb15c1a5cf6c94471425",
      "parents": [
        "869cd683ddee9c12fce442e1e0c920263a447ca5"
      ],
      "author": {
        "name": "Marco Antognini",
        "email": "marco.antognini@arm.com",
        "time": "Mon Mar 15 12:48:37 2021"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 15 12:48:37 2021"
      },
      "message": "Fix compilation for 32-bit systems (#717)\n\n* Fix compilation for 32-bit systems\r\n\r\nInclude HandleLLVMOptions to ensure LLVM and clspv components are\r\ncompiled using the same defines (for example -D_FILE_OFFSET_BITS\u003d64\r\n-D_LARGEFILE_SOURCE). This essentially fixes this undefined reference to\r\n    clang::FileManager::getVirtualFile(llvm::StringRef, long, long)\r\nwhile the following was actually defined\r\n    clang::FileManager::getVirtualFile(llvm::StringRef, long long, long)\r\n.\r\n\r\nAs a consequence, the compilation and link options are updated and\r\nrequire fixes to the dependency lists of clspv_passes and clspv_core.\r\n\r\nSigned-off-by: Marco Antognini \u003cmarco.antognini@arm.com\u003e\r\n\r\n* Address warnings\r\n\r\nWith the previous update, additional warnings are generated by default.\r\nThis patch addresses these:\r\n\r\n * -Wunused-function: use `inline` instead of `static` in header.\r\n * -Wunused-but-set-variable: code is protected in #ifndef NDEBUG when\r\n   it is only used for the purpose of assertions.\r\n * -Wunused-function and -Wunused-but-set-variable: dead code is\r\n   removed.\r\n * -Wsign-compare: uses of `auto` are replaced with `unsigned` or\r\n   `size_t`, or use `static_cast`.\r\n * -Wimplicit-fallthrough: this warning is silenced using special\r\n   comments.\r\n * -Wpedantic: remove extra `;` on closing brace for namespace.\r\n * -Woverflow: use types explicitly sized (e.g. std::uint64_t) and\r\n   appropriate macros for minimum-width integer constants instead of\r\n   size_t.\r\n\r\nSigned-off-by: Marco Antognini \u003cmarco.antognini@arm.com\u003e"
    },
    {
      "commit": "869cd683ddee9c12fce442e1e0c920263a447ca5",
      "tree": "1a30e57f7677e8195992b1e732f16ad307fe0b9f",
      "parents": [
        "3a2a3eef2b02e43372a72b59e16df6b13a7aeae9"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Fri Mar 05 16:21:19 2021"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 05 16:21:19 2021"
      },
      "message": "Add an LLVM IR library for more builtin functions (#715)\n\n* The IR library is generated from libclc (see README.md for\r\n  instructions to rebuild it)\r\n  * it is included as a header in the compiler and linked with the\r\n    source\r\n* Added the LICENSE text to LICENSE due to the addition of LLVM IR\r\n  library\r\n* Added a new compiler option `-cl-native-math` for the fasted math\r\n  implementations\r\n  * no precision guarantees\r\n  * Causes a new pass to strip some of the library functions when a\r\n    lower precision, faster alternative is available (e.g. for fma)\r\n  * this option implies `-cl-fast-relaxed-math`\r\n* Updated docs and readme\r\n* Updated LLVM\r\n* Updated tests\r\n"
    },
    {
      "commit": "3a2a3eef2b02e43372a72b59e16df6b13a7aeae9",
      "tree": "00e95375671846a969f69281ef730137f0845cb3",
      "parents": [
        "5f54acf2d35aa215501259c1f982b781cc26a809"
      ],
      "author": {
        "name": "Marco Antognini",
        "email": "marco.antognini@arm.com",
        "time": "Tue Mar 02 18:27:36 2021"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 02 18:27:36 2021"
      },
      "message": "Address linking issues with shared build (#714)\n\nLink against LLVMCodeGen to solve the follow issues when doing a\r\nshared-library build:\r\n\r\n    lib/libclspv_core.so: undefined reference to `llvm::createHardwareLoopsPass()\u0027\r\n    lib/libclspv_core.so: undefined reference to `llvm::createCodeGenPreparePass()\u0027\r\n    lib/libclspv_core.so: undefined reference to `llvm::createExpandMemCmpPass()\u0027\r\n    lib/libclspv_core.so: undefined reference to `llvm::createSafeStackPass()\u0027\r\n\r\nThe issue was introduce with b41cfd36 (Update LLVM (#711), 2021-02-17).\r\n\r\nSigned-off-by: Marco Antognini \u003cmarco.antognini@arm.com\u003e"
    },
    {
      "commit": "5f54acf2d35aa215501259c1f982b781cc26a809",
      "tree": "50e5fdceafc3e187b55dd9bc7be9f17bcc58848e",
      "parents": [
        "2740a00e6d5e7cc64a98fe69bae655353b3d1ca9"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Mon Mar 01 22:21:29 2021"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 01 22:21:29 2021"
      },
      "message": "Update LLVM (#713)\n\n* Fix print-all test expected output"
    },
    {
      "commit": "2740a00e6d5e7cc64a98fe69bae655353b3d1ca9",
      "tree": "1a0cef9c7e380846f28ac7693947d6f128e7d894",
      "parents": [
        "b41cfd3672d056788b83f5d42b60df4653bda298"
      ],
      "author": {
        "name": "Marco Antognini",
        "email": "marco.antognini@arm.com",
        "time": "Thu Feb 18 20:21:34 2021"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 18 20:21:34 2021"
      },
      "message": "Lower arrays and more GEPs (#710)\n\nSupport additional forms for getelementptr instructions for the provided\r\nuse cases: multiple indices and constant expressions.\r\n\r\nWhen lowering globals, keep their name intact.\r\n\r\nSigned-off-by: Marco Antognini \u003cmarco.antognini@arm.com\u003e"
    },
    {
      "commit": "b41cfd3672d056788b83f5d42b60df4653bda298",
      "tree": "77136f4010861eccda6816f71b9445b264b90d80",
      "parents": [
        "42b65228f3e8af21715c267a1f311711baf80989"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Wed Feb 17 13:28:59 2021"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Feb 17 13:28:59 2021"
      },
      "message": "Update LLVM (#711)\n\n* Fix uses of `CloneFunctionInto` in UndoByval and UndoSRet passes"
    },
    {
      "commit": "42b65228f3e8af21715c267a1f311711baf80989",
      "tree": "22955813a273820c857256c2bca0b807c4867193",
      "parents": [
        "a1001779837ca59c8f1099768fbf25115bc04705"
      ],
      "author": {
        "name": "Marco Antognini",
        "email": "marco.antognini@arm.com",
        "time": "Fri Feb 12 18:40:42 2021"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Feb 12 18:40:42 2021"
      },
      "message": "Fix crash in ReplacePointerBitcastPass (#707)\n\nDo not attempt to remove instructions that were not (yet) replaced but\r\ntransitively remove dead instructions.\r\n\r\nSigned-off-by: Marco Antognini \u003cmarco.antognini@arm.com\u003e"
    },
    {
      "commit": "a1001779837ca59c8f1099768fbf25115bc04705",
      "tree": "f58ea99788f405cdb8ff554ef0ac54e014646a7d",
      "parents": [
        "36309f9e3946e5b79a6b9fcbb6824172a261876e"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Mon Feb 08 21:42:33 2021"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 08 21:42:33 2021"
      },
      "message": "Update LLVM (#706)\n\n* Switch to using main instead of master for llvm\r\n* Workaround an issue with 3d image writes and OpenCL C 3.0 (see #705)"
    },
    {
      "commit": "36309f9e3946e5b79a6b9fcbb6824172a261876e",
      "tree": "de8c82d732fac1be111f50678a90c2cd95fb4fd8",
      "parents": [
        "40efe7f166bd25aa0be5e632ee3273a3306a60b3"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Fri Feb 05 17:28:03 2021"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Feb 05 17:28:03 2021"
      },
      "message": "Support atomic_work_item_fence (#703)\n\n* Update docs\r\n* Code gens to OpMemoryBarrier\r\n"
    },
    {
      "commit": "40efe7f166bd25aa0be5e632ee3273a3306a60b3",
      "tree": "c168412bd031929fc3b623cc4659570b33f23ca2",
      "parents": [
        "229c3663621c1e87b309138657eae2e12b2e0fa2"
      ],
      "author": {
        "name": "James Price",
        "email": "jrprice@google.com",
        "time": "Mon Jan 18 14:19:31 2021"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 18 14:19:31 2021"
      },
      "message": "Update LLVM (#701)\n\n\r\n* clang::CompilerInstance::setLangDefaults() now takes an output\r\n  vector argument (for affected includes) instead of a\r\n  PreprocessorOptions reference\r\n* Fix name of opencl-c.h header\r\n* Add comment about unused vector"
    },
    {
      "commit": "229c3663621c1e87b309138657eae2e12b2e0fa2",
      "tree": "114b353c08eb9e74a84ab709f377385ea5e60388",
      "parents": [
        "e320d1aea2986a37e9626323a9dbc7ebd45535f6"
      ],
      "author": {
        "name": "Kévin Petit",
        "email": "kevin.petit@arm.com",
        "time": "Tue Jan 12 16:18:54 2021"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 12 16:18:54 2021"
      },
      "message": "Fix warning in GetArgKindForPodArgs (#699)\n\n\"control reaches end of non-void function\"\r\n\r\nSigned-off-by: Kévin Petit \u003ckevin.petit@arm.com\u003e"
    },
    {
      "commit": "e320d1aea2986a37e9626323a9dbc7ebd45535f6",
      "tree": "3af9676ca48749e4e447e332503cda96a4aecc7e",
      "parents": [
        "757dea8dc3780fa4405a8f6d9c9981b16efab4df"
      ],
      "author": {
        "name": "James Price",
        "email": "jrprice@google.com",
        "time": "Tue Jan 12 13:36:53 2021"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 12 13:36:53 2021"
      },
      "message": "Add stub for array types in the long vector pass (#698)\n\nWithout this the pass bails when it encounters any array type, even if\r\nit does not contain wide vectors."
    },
    {
      "commit": "757dea8dc3780fa4405a8f6d9c9981b16efab4df",
      "tree": "25a9c664102f4dc4ca5e9ed7a90d4d3d8ff7ce00",
      "parents": [
        "2cf925c8bfeea78c7ced83ee476a5f3e077cff0b"
      ],
      "author": {
        "name": "James Price",
        "email": "jrprice@google.com",
        "time": "Mon Jan 11 18:42:39 2021"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 11 18:42:39 2021"
      },
      "message": "Handle sitofp with i1 arguments (#697)\n\n* Add sitofp to the special case for i1 conversions to generate an\r\n  OpSelect instead of an OpConvertSToF\r\n\r\n* Add tests that cause LLVM to generate these instructions"
    },
    {
      "commit": "2cf925c8bfeea78c7ced83ee476a5f3e077cff0b",
      "tree": "46804b74eedebcc0856add5114b4c97a48baac6e",
      "parents": [
        "381943b4196fd26b12788ba515573a1e09108b27"
      ],
      "author": {
        "name": "James Price",
        "email": "jrprice@google.com",
        "time": "Thu Jan 07 16:44:25 2021"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jan 07 16:44:25 2021"
      },
      "message": "Use distinct nodes for clspv.next_spec_constant_id (#696)\n\nMetadata nodes are uniqued by default, which means this counter was\r\nsometimes being merged with other metadata values such as push\r\nconstant declarations. Subsequent updates to this counter would then\r\ninadvertently change the type of the push constant."
    },
    {
      "commit": "381943b4196fd26b12788ba515573a1e09108b27",
      "tree": "af071456950ee66e5d13da788081cd2db9da31b2",
      "parents": [
        "61a723808f1277f6defa8b7635ad73313c78a56e"
      ],
      "author": {
        "name": "Marco Antognini",
        "email": "marco.antognini@arm.com",
        "time": "Wed Jan 06 14:39:00 2021"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jan 06 14:39:00 2021"
      },
      "message": "Lower kernel parameters (#694)\n\n* Lower some GetElementPtrInst instructions\r\n\r\nAdd support for a limited flavour of GEP instructions, based on test\r\ncase.\r\n\r\nSigned-off-by: Marco Antognini \u003cmarco.antognini@arm.com\u003e\r\n\r\n* Accept long-vector as kernel parameters\r\n\r\nLowering of kernel parameters is now supported. Update existing tests to\r\nuse long-vector parameters.\r\n\r\nSigned-off-by: Marco Antognini \u003cmarco.antognini@arm.com\u003e"
    },
    {
      "commit": "61a723808f1277f6defa8b7635ad73313c78a56e",
      "tree": "625b4016e08b3d26d76e02168a14d920e4750798",
      "parents": [
        "c3d5644a2584ca98d65286f9903be9a07a148712"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Tue Jan 05 19:14:15 2021"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 05 19:14:15 2021"
      },
      "message": "Improve robustness of the IR emission test (#695)\n\n"
    },
    {
      "commit": "c3d5644a2584ca98d65286f9903be9a07a148712",
      "tree": "0798cc5a34164053b7554b2def3acb874278c212",
      "parents": [
        "39e8f18059564e29a7214f99a8ed7123b5d4cf32"
      ],
      "author": {
        "name": "Kévin Petit",
        "email": "kevin.petit@arm.com",
        "time": "Mon Jan 04 19:27:31 2021"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 04 19:27:31 2021"
      },
      "message": "Update work-group size section of the documentation (#693)\n\nFollow what was done when the reflection non-semantic instructions\r\nand support for mixing kernels with and without the reqd_work_group_size\r\nattribute (3b6097783) were introduced.\r\n\r\nSigned-off-by: Kévin Petit \u003ckevin.petit@arm.com\u003e"
    },
    {
      "commit": "39e8f18059564e29a7214f99a8ed7123b5d4cf32",
      "tree": "1dc961e283e2070b59905fb11457a953d4358c86",
      "parents": [
        "c9818165162e31f259e47da62f7adb7d73fdf700"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Mon Jan 04 17:23:25 2021"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 04 17:23:25 2021"
      },
      "message": "Update LLVM (#692)\n\n* Update test expectations now that poison is used in\r\n  IRBuilder::CreateVectorSplat"
    },
    {
      "commit": "c9818165162e31f259e47da62f7adb7d73fdf700",
      "tree": "9a0945b2c3dba9d0a885613dacff0a06c04ff0ec",
      "parents": [
        "29162cf62be36d60ceb7c53876e96c3e6cf0d92b"
      ],
      "author": {
        "name": "Marco Antognini",
        "email": "marco.antognini@arm.com",
        "time": "Mon Jan 04 14:42:03 2021"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 04 14:42:03 2021"
      },
      "message": "Lower additional OpenCL builtin functions (#690)\n\n* Lower additional OpenCL builtin functions\r\n\r\nLower overloads of exp, fma, fmax and fmin.\r\n\r\nAdd end-to-end tests for some overloads.\r\n\r\nSigned-off-by: Marco Antognini \u003cmarco.antognini@arm.com\u003e\r\n\r\n* Lower OpenCL frexp builtin function\r\n\r\nAdd support for OpenCL functions with pointer parameters.\r\nImprove support for OpenCL functions with mix of vector and scalar\r\nparameters (e.g. max).\r\n\r\nSigned-off-by: Marco Antognini \u003cmarco.antognini@arm.com\u003e"
    },
    {
      "commit": "29162cf62be36d60ceb7c53876e96c3e6cf0d92b",
      "tree": "6084d527bfae103cdbb3436e12e36c65bbb6960a",
      "parents": [
        "8b96811e204879a77dec7fe92a8e5bae2b97508d"
      ],
      "author": {
        "name": "Tim Gates",
        "email": "tim.gates@iress.com",
        "time": "Mon Jan 04 13:20:57 2021"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 04 13:20:57 2021"
      },
      "message": "docs: fix simple typo, variabls -\u003e variables (#691)\n\nThere is a small typo in include/clspv/Passes.h.\r\n\r\nShould read `variables` rather than `variabls`."
    },
    {
      "commit": "8b96811e204879a77dec7fe92a8e5bae2b97508d",
      "tree": "50bd69c7af5a0c5aa35eb8b34dfaa1bd26e3c5fc",
      "parents": [
        "67791d3f53b1fbe0001353c2555e001fff8e2d71"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Tue Dec 15 20:53:29 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 15 20:53:29 2020"
      },
      "message": "More math builtin support (#689)\n\n* Support sincos\r\n  * Use llvm.sin and llvm.cos\r\n* Support expm1\r\n  * use llvm.exp - 1\r\n* Support pown\r\n  * use llvm.pow with fp conversion\r\n* Switch log1p to use llvm.log\r\n* Producer support for llvm.log, llvm.exp and llvm.pow\r\n"
    },
    {
      "commit": "67791d3f53b1fbe0001353c2555e001fff8e2d71",
      "tree": "a2a603e7a6be45887553d837ba07015724ff9362",
      "parents": [
        "eabde15383fe89153902c4d1cb61780c786c0328"
      ],
      "author": {
        "name": "Marco Antognini",
        "email": "marco.antognini@arm.com",
        "time": "Tue Dec 15 16:39:52 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 15 16:39:52 2020"
      },
      "message": "Lower CmpInst, SelectInst, and OpenCL select() (#686)\n\nMark PHINode as unsupported for now. Test cases are required to\r\nimplement this feature.\r\n\r\nAdd tests covering icmp and the two forms of select instructions. Add\r\ntest covering OpenCL select builtin function. Update fast-math flag\r\ntest.\r\n\r\nSigned-off-by: Marco Antognini \u003cmarco.antognini@arm.com\u003e"
    },
    {
      "commit": "eabde15383fe89153902c4d1cb61780c786c0328",
      "tree": "56d8041c0e3c9217b01bad16556bbe5904ee7aa5",
      "parents": [
        "1a9d629acf3fe2a41584c8e0733b6876eecca1ca"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Thu Dec 10 19:02:11 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Dec 10 19:02:11 2020"
      },
      "message": "Changes to the Amber test runner (#687)\n\n* Add an option to specify the Vulkan ICD location\r\n  * Update kokoro build to use this option\r\n* Add an option to avoid large globs\r\n* Fix suppressions when only testing a single directory\r\n* Fix delimiter consistency"
    },
    {
      "commit": "1a9d629acf3fe2a41584c8e0733b6876eecca1ca",
      "tree": "f5404958a5e6be449f66a1b79362b499004166d0",
      "parents": [
        "3e0de470ba90cd8b33d2edd269f4cfc5d3104445"
      ],
      "author": {
        "name": "Marco Antognini",
        "email": "marco.antognini@arm.com",
        "time": "Wed Dec 09 17:16:59 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Dec 09 17:16:59 2020"
      },
      "message": "Lower OpenCL convert_* builtin functions (#685)\n\nAdd support for various CastInst subclasses.\r\n\r\nIntroduce tests covering the end-to-end compilation flow for a subset of\r\nthe OpenCL convert_* builtin functions. Not all cases are covered to\r\navoid increasing testing time too much.\r\n\r\nSigned-off-by: Marco Antognini \u003cmarco.antognini@arm.com\u003e"
    },
    {
      "commit": "3e0de470ba90cd8b33d2edd269f4cfc5d3104445",
      "tree": "8a5cc542d9392680b0ca094da7eb20e5631ff9a8",
      "parents": [
        "7bcec14978df18a0a068e0a7b909a2afe4b7a6ad"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Tue Dec 08 20:57:17 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 08 20:57:17 2020"
      },
      "message": "Support more math builtins (#684)\n\n* New implementation of round\r\n  * glsl extended instruction is insufficient to pass CTS because the\r\n    rounding mode is implementation defined\r\n  * Passes CTS\r\n* implementations of cospi, sinpi and tanpi\r\n  * use llvm.sin and llvm.cos\r\n  * not sufficient for full conformance, but passes relaxed requirements\r\n* backend support for llvm.sin, llvm.cos, llvm.fabs, llvm.ceil,\r\n  llvm.floor and llvm.rint\r\n"
    },
    {
      "commit": "7bcec14978df18a0a068e0a7b909a2afe4b7a6ad",
      "tree": "77726e2adb730a25473b3576834dc52ca95f442d",
      "parents": [
        "5f2e88e72a9aa712632404b121ac3297c872800a"
      ],
      "author": {
        "name": "Marco Antognini",
        "email": "marco.antognini@arm.com",
        "time": "Tue Dec 08 15:56:57 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 08 15:56:57 2020"
      },
      "message": "Lower global variables (#681)\n\nProcess global variables before processing any function.\r\n\r\nAdd test covering this functionality.\r\n\r\nSigned-off-by: Marco Antognini \u003cmarco.antognini@arm.com\u003e"
    },
    {
      "commit": "5f2e88e72a9aa712632404b121ac3297c872800a",
      "tree": "f5c8c8fcf5185745916a1866895ca32e3ade4740",
      "parents": [
        "ecc9c94fc551fa82425948862230cc81e2932204"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Mon Dec 07 20:24:04 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Dec 07 20:24:04 2020"
      },
      "message": "Refactor some builtin support (#682)\n\n* Refactor some builtin support\r\n\r\n* Don\u0027t replace builtins or intrinsics if they have a definition\r\n* add implmemetations for llvm.trunc\r\n* small change to name mangling\r\n* fix an odd debug assertion in spirvop when reusing another function\r\n\r\nImplement clz and ctz via llvm.ctlz and llvm.cttz\r\n\r\n* Remove run of llvm intrinsic replacement before opencl builtin\r\n  replacement\r\n* add cleaner methodology for replacement ReplaceLLVMIntrinsicsPass\r\n  * convert fshl to this style\r\n* All clz and ctz functions are replaced with equivalent llvm intrinsics\r\n  * Replace llvm intrinsics implements non-32-bit versions\r\n  * update tests\r\n* spirv producer updated to handle more llvm intrinsics\r\n* Rotate, clz and ctz still pass CTS\r\n\r\nRefactor copysign support\r\n\r\n* Replace opencl builtin with llvm intrinsic\r\n* move copysign implementation to llvm intrinsic replacement\r\n\r\n* formatting\r\n\r\n* changes for review"
    },
    {
      "commit": "ecc9c94fc551fa82425948862230cc81e2932204",
      "tree": "ae4dacc594eba8d508dacd890bf07635e6c370be",
      "parents": [
        "cbe834f9a10b0cd51aca446db4e3c2622f23c4f1"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Mon Dec 07 18:13:32 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Dec 07 18:13:32 2020"
      },
      "message": "Change fclamp to nclamp (#683)\n\nFixes #506\r\n\r\n* Floating-point clamps use NClamp instead of Fclamp\r\n* update tests"
    },
    {
      "commit": "cbe834f9a10b0cd51aca446db4e3c2622f23c4f1",
      "tree": "88dcf4b9d74305f0f278a92bd0a71df36708af2e",
      "parents": [
        "d9ccec7281d4114a7bc1410295a4a4654c6c9d65"
      ],
      "author": {
        "name": "James Price",
        "email": "jrprice@google.com",
        "time": "Tue Dec 01 18:42:25 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 01 18:42:25 2020"
      },
      "message": "Update LLVM (#680)\n\n* llvm::Module::getTypeByName() has been moved to be a static member\r\n  of llvm::StructType"
    },
    {
      "commit": "d9ccec7281d4114a7bc1410295a4a4654c6c9d65",
      "tree": "238f1157322a091ea3cb806bddbbf445dd48e097",
      "parents": [
        "96bd3d925047481d0244f79c522b962c5a1c2f73"
      ],
      "author": {
        "name": "Marco Antognini",
        "email": "marco.antognini@arm.com",
        "time": "Tue Dec 01 16:52:34 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 01 16:52:34 2020"
      },
      "message": "Lowers OpenCL builtin functions (#678)\n\n* Add logic to lower OpenCL builtin functions\r\n\r\nInitiate lowering of OpenCL builtin functions with the overloads of max\r\nfor int8, int16, float8 and float16 types.\r\n\r\nThe implementation is currently based on a very simple mapping of\r\nmangled names, from the vector overload to its scalar counterpart. This\r\nsolution is known to have limitations, especially w.r.t. scaling to\r\nsupport all OpenCL builtin functions, yet it is trivial and seemed\r\nsufficient for this prototype. It should nonetheless be replaced with a\r\ngeneric solution later on.\r\n\r\nAdd two new test cases, covering the SPIR-V generation. Extend an\r\nexisting test case, covering the case where multiple overloads of the\r\nsame builtin function are used in the same program.\r\n\r\nSigned-off-by: Marco Antognini \u003cmarco.antognini@arm.com\u003e\r\n\r\n* Improve lowering of builtin functions\r\n\r\nRely on clspv::Builtins instead of a manual mapping of mangled names to\r\nlower builtin functions in order to ensure the design can scale to\r\nsupport all OpenCL builtin functions.\r\n\r\nAdd new testcase to illustrate the flexibility of the new approach.\r\n\r\nSigned-off-by: Marco Antognini \u003cmarco.antognini@arm.com\u003e"
    },
    {
      "commit": "96bd3d925047481d0244f79c522b962c5a1c2f73",
      "tree": "ab4b7d85bbc0d7aef758b1cf49bd9d708d699c0a",
      "parents": [
        "e0406e7053d1bb46b4bbeb57f0f2bbfca32f5612"
      ],
      "author": {
        "name": "James Price",
        "email": "jrprice@google.com",
        "time": "Mon Nov 23 14:01:57 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Nov 23 14:01:57 2020"
      },
      "message": "Fix casts from bool to half/double (#676)\n\n* Use the correct type for constants generated by uitofp i1\r\n* Add tests"
    },
    {
      "commit": "e0406e7053d1bb46b4bbeb57f0f2bbfca32f5612",
      "tree": "c10c0461b754210c01ad12ddf7f9660fb17c5b88",
      "parents": [
        "a3ddd78e2c5c8fa66e00582f2d6eb4d607170fab"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Tue Nov 10 17:32:04 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Nov 10 17:32:04 2020"
      },
      "message": "Implement fdim (#675)\n\n* fdim requires an unordered comparison as it should return a NaN if\r\n  either input is a NaN\r\n* add lit tests\r\n* Passes OpenCL CTS for float"
    },
    {
      "commit": "a3ddd78e2c5c8fa66e00582f2d6eb4d607170fab",
      "tree": "7ea86c5de5cbb46f80c63f7ab4ea389137772e63",
      "parents": [
        "497920b0ef2f4c8a5932c8528dba1d00a336d525"
      ],
      "author": {
        "name": "Marco Antognini",
        "email": "marco.antognini@arm.com",
        "time": "Tue Nov 10 17:31:49 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Nov 10 17:31:49 2020"
      },
      "message": "Lower OpenCL vloadN and vstoreN (#670)\n\nLower AllocaInst, LoadInst, StoreInst and some variants of CastInst\r\n(currently limited to bitcast of pointers).\r\n\r\nRemove OpenCL builtin overloads for long-vector types from the banned\r\nlist. Add a test to ensure no diagnostic is emitted when using these\r\noverloads.\r\n\r\nWith the support for the instructions mentioned above, it\u0027s now possible\r\nto lower OpenCL vloadN and vstoreN. Add tests covering these for float8\r\nand float16.\r\n\r\nSigned-off-by: Marco Antognini \u003cmarco.antognini@arm.com\u003e"
    },
    {
      "commit": "497920b0ef2f4c8a5932c8528dba1d00a336d525",
      "tree": "72f8fa1544ad174108a6a4614576e373ee160a3e",
      "parents": [
        "3e217779631948e879407f8a772ca72730ea0f0f"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Mon Nov 09 21:41:36 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Nov 09 21:41:36 2020"
      },
      "message": "Implement isnormal (#674)\n\n* Implement isnormal via integer comparisons\r\n* lit tests\r\n* update docs\r\n* Passes OpenCL CTS for 32-bit float\r\n"
    },
    {
      "commit": "3e217779631948e879407f8a772ca72730ea0f0f",
      "tree": "c0353990f3edd51ca4b61ec818fbc4206da20681",
      "parents": [
        "15106574de3f10c8611a083192ca4b910f2e7de2"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Sat Nov 07 22:29:40 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Nov 07 22:29:40 2020"
      },
      "message": "Implement islessgreater (#672)\n\n* Update docs\r\n* islessgreater is implemented as `fcmp one`\r\n* Fixed a bug in isnotequal\r\n  * Changed to `fcmp une` instead of `fcmp one`\r\n* Simplied `replaceRelational` to use an extension instead of select\r\n* Re-tested math brute force and relational CTS for all affected\r\n  functions"
    },
    {
      "commit": "15106574de3f10c8611a083192ca4b910f2e7de2",
      "tree": "d02852bbf4bc038d74d16f4a19753580d0366be6",
      "parents": [
        "2cecaa73da4dcbe18ec45b4ca118ae4cae12f9a3"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Fri Nov 06 20:08:10 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Nov 06 20:08:10 2020"
      },
      "message": "Implement isordered and isunordered (#671)\n\n* Implement in terms of `fcmp ord` and `fcmp uno` respectively followed\r\n  by an extension\r\n* SPIRVProducer support for `fcmp ord` and `fcmp uno` in terms of\r\n  OpIsNan\r\n* tests\r\n* Passes OpenCL CTS for float, float2 and float4\r\n"
    },
    {
      "commit": "2cecaa73da4dcbe18ec45b4ca118ae4cae12f9a3",
      "tree": "faa23590cca4f866781424964a1e85d7c6b7cb4c",
      "parents": [
        "3f1bf49cc8598ec1787e5c8d2a9fdf5db3c40ee0"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Thu Nov 05 19:05:20 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Nov 05 19:05:20 2020"
      },
      "message": "Implement ctz (#669)\n\n* Similar to clz, all versions are implemented in terms of 32-bit ctz\r\n* 32-bit ctz is implemented as FindILsb, a comparison against -1 and a\r\n  select\r\n* Added lit and amber tests\r\n"
    },
    {
      "commit": "3f1bf49cc8598ec1787e5c8d2a9fdf5db3c40ee0",
      "tree": "d2b2660ebaacccee30c25cbd5949ce9c693ddd8c",
      "parents": [
        "6b9d1ee927adc9bd8452e965682672af51cad48f"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Thu Nov 05 14:07:36 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Nov 05 14:07:36 2020"
      },
      "message": "Implement sub_sat (#668)\n\n* Refactor replaceAddSat to also handle sub_sat\r\n  * add support for OpISubBorrow in the producer\r\n* Update add_sat tests\r\n* Passes short, ushort, int and uint OpenCL CTS\r\n"
    },
    {
      "commit": "6b9d1ee927adc9bd8452e965682672af51cad48f",
      "tree": "72403fcd336ffb9d12cdb5049e78d35d5e93fa54",
      "parents": [
        "e8a6862502bc28334703a7289cee1897ec657fd9"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Wed Nov 04 04:11:32 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 04 04:11:32 2020"
      },
      "message": "Implement mad_sat (#667)\n\n* Fix a bug in ReplaceOpenCLBuiltinPass where pair structs were not\r\n  reused and led to different types gettings casted improperly\r\n* Implement mad_sat in three cases\r\n  * unsigned\r\n  * signed \u003c 32-bit\r\n  * signed \u003e\u003d 32-bit\r\n* Passed OpenCL cts for short, ushort, int and uint cases (covers all three implementations)"
    },
    {
      "commit": "e8a6862502bc28334703a7289cee1897ec657fd9",
      "tree": "6a76df556bd6b64943f03be6166f01f09e0f9712",
      "parents": [
        "8576f6843fb1d563fa2675e3bde90159157d6757"
      ],
      "author": {
        "name": "Marco Antognini",
        "email": "marco.antognini@arm.com",
        "time": "Tue Nov 03 22:10:50 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Nov 03 22:10:50 2020"
      },
      "message": "Lower function call and initial support for LLVM intrinsics (#666)\n\n* Lower function call involving long-vectors\r\n\r\nThis doesn\u0027t yet support LLVM intrinsics or OpenCL builtin functions.\r\n\r\nMinor refactor: move lowering of function types to getEquivalentTypeImpl\r\nto ensure these types are supported when visiting call instructions\r\npresent in the added tests.\r\n\r\n* Add logic to lower LLVM intrinsics\r\n\r\nLower calls to vector overloads of @llvm.fmuladd to calls to its scalar\r\nversion. The logic can be easily re-used for other LLVM intrinsics when\r\ntest cases are added.\r\n\r\nSigned-off-by: Marco Antognini \u003cmarco.antognini@arm.com\u003e"
    },
    {
      "commit": "8576f6843fb1d563fa2675e3bde90159157d6757",
      "tree": "91afe831187ca724a08f32deadd663b17e596eb2",
      "parents": [
        "cc2bafb7553ae7a3cf11fdaba8267000c2473d71"
      ],
      "author": {
        "name": "Kévin Petit",
        "email": "kpet@free.fr",
        "time": "Mon Nov 02 14:51:32 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Nov 02 14:51:32 2020"
      },
      "message": "Fix hadd/rhadd for signed types (#665)\n\nNow passes the OpenCL conformance tests.\r\n\r\nSigned-off-by: Kévin Petit \u003ckpet@free.fr\u003e\r\n\r\nCo-authored-by: alan-baker \u003calanbaker@google.com\u003e"
    },
    {
      "commit": "cc2bafb7553ae7a3cf11fdaba8267000c2473d71",
      "tree": "bb6d499aff2f9a0cb022df76247adae998ca921b",
      "parents": [
        "44529d66b39b18e6c29328184ec866a3e6ffec78"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Mon Nov 02 13:30:18 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Nov 02 13:30:18 2020"
      },
      "message": "Fix non-32-bit clz (#664)\n\n* Implement non-32-bit clz in terms of 32-bit clz\r\n  * GLSL extended instruction FindUMsb only supports 32-bit integers\r\n* Add lit and amber based clz tests\r\n"
    },
    {
      "commit": "44529d66b39b18e6c29328184ec866a3e6ffec78",
      "tree": "0a9a4c45f5621ddeb703f197faebdc105a38c2fb",
      "parents": [
        "fd22ae1dcdc3f0c0aca65cf02eb2a1699576a6f3"
      ],
      "author": {
        "name": "Marco Antognini",
        "email": "marco.antognini@arm.com",
        "time": "Fri Oct 30 17:29:14 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 30 17:29:14 2020"
      },
      "message": "Lower UnaryOperator and handle fast math flags (#663)\n\nAdd test covering these features.\r\n\r\nSigned-off-by: Marco Antognini \u003cmarco.antognini@arm.com\u003e"
    },
    {
      "commit": "fd22ae1dcdc3f0c0aca65cf02eb2a1699576a6f3",
      "tree": "88815fabe4d55102a080f0b9304aaeabbf7da145",
      "parents": [
        "b6da513b2204872184f85d7b68238f2aee18920c"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Thu Oct 29 19:59:22 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 29 19:59:22 2020"
      },
      "message": "Implement rotate in terms of llvm.fshl (#662)\n\n* Remove (effectively) duplicate implementation of rotate\r\n  * Implement in terms of more generic funnel shift left"
    },
    {
      "commit": "b6da513b2204872184f85d7b68238f2aee18920c",
      "tree": "39777d9498b356f7974c8c577327357e673567cb",
      "parents": [
        "4986eff323cd68a44ce39516f4ac5208a20c057b"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Thu Oct 29 19:59:06 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 29 19:59:06 2020"
      },
      "message": "Implement hadd and rhadd (#660)\n\n* Add amber tests\r\n* update docs\r\n"
    },
    {
      "commit": "4986eff323cd68a44ce39516f4ac5208a20c057b",
      "tree": "fa74e68756aa6574f0fd869720127af8c2da3389",
      "parents": [
        "a41221e158e3262ae746a24ecef2ec224284909d"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Thu Oct 29 17:38:00 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 29 17:38:00 2020"
      },
      "message": "Add support for OpenCL 2.0 atomic functions (#657)\n\n* Add support for atomic_fetch_*[_explicit], atomic_exchange[_explicit]\r\n  and atomic_compare_exchange_(weak|strong)[_explicit]\r\n* small refactoring of the code\r\n* tests\r\n* Fix builtins for atomic_fetch* functions\r\n  * previously they were all under key instead of individual functions\r\n* Support atomic types\r\n* Add documentation\r\n"
    },
    {
      "commit": "a41221e158e3262ae746a24ecef2ec224284909d",
      "tree": "2a7ee9feaa6ddbc6d0ba14491a4666bc9fe8b412",
      "parents": [
        "4689aba1b0082be451ccb41e843cf4d629106c83"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Thu Oct 29 16:06:55 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 29 16:06:55 2020"
      },
      "message": "Update deps (#661)\n\n"
    },
    {
      "commit": "4689aba1b0082be451ccb41e843cf4d629106c83",
      "tree": "d82b1d125108a6ff3c798a7f8fa70dd29ea43a11",
      "parents": [
        "3d9056992205108d7e8ad713520d02bfa8f49d1c"
      ],
      "author": {
        "name": "Marco Antognini",
        "email": "marco.antognini@arm.com",
        "time": "Thu Oct 29 15:55:36 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 29 15:55:36 2020"
      },
      "message": "Recusiverly lower instructions (#655)\n\n* Introduce InstVisitor facilities to lower instructions\r\n\r\nImprove the design by relying on InstVisitor to lower instructions. This\r\nis a first step to ensure the pass will remain modular when adding\r\nsupport for additional instructions.\r\n\r\n* Recursively lower instructions\r\n\r\nLower InsertElementInst, ExtractElementInst, ShuffleVectorInst,\r\nUndefValue, ConstantAggregateZero, ConstantDataVector and pointer types.\r\n\r\nWith support for these instructions, it is now possible to use recursion\r\nto implement support for BinaryOperator with the existing tests.\r\n\r\nStrengthen checks in getEquivalentTypeImpl. Now that this function is\r\nrecursive it cannot be const anymore.\r\n\r\nEnable the disabled llvm_unreachable statements to catch bugs now that\r\nenough functionalities are implemented.\r\n\r\nAdd test to cover the newly supported constants and instructions.\r\n\r\nSigned-off-by: Marco Antognini \u003cmarco.antognini@arm.com\u003e"
    },
    {
      "commit": "3d9056992205108d7e8ad713520d02bfa8f49d1c",
      "tree": "3d2f5133ac92c6bdf6df087e1d36d924bc627323",
      "parents": [
        "a52b7310e3c5b179cd3540d1f6fb298f07396664"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Wed Oct 28 18:02:37 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 28 18:02:37 2020"
      },
      "message": "Add convergent attribute in more cases (#658)\n\n* When replacing barriers and memory fences, add the convergent\r\n  attribute to the spirv.op function"
    },
    {
      "commit": "a52b7310e3c5b179cd3540d1f6fb298f07396664",
      "tree": "892c4b9ee5c0e2694977916f784203a2bd736f1f",
      "parents": [
        "c3fd07f93783dfa2b5c03e7ab03dce34f383f0d9"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Mon Oct 26 12:58:51 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 26 12:58:51 2020"
      },
      "message": "Implement add_sat (#656)\n\n* Modify strip_banned_opencl_features.py to not strip add_sat (or\r\n  sub_sat) builtins\r\n* Add an implementation of add_sat\r\n  * uses three possible implementations\r\n  * OpIAddCarry\r\n  * extend, add and clamp\r\n  "
    },
    {
      "commit": "c3fd07f93783dfa2b5c03e7ab03dce34f383f0d9",
      "tree": "0bf7d4bf70fc34c4ce29324f5bb0a53dfd52d876",
      "parents": [
        "77838ff92e0bab0f6bc61d0d9bddcfa21695b7ca"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Thu Oct 22 13:48:49 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 22 13:48:49 2020"
      },
      "message": "Prevent duplicate types and decorations (#654)\n\nFixes #651\r\n\r\n* Prevent duplicate types and decorations from being generated for\r\n  equivalent pointer types\r\n  * Due to the shared mapping of __global and __constant to\r\n    StorageBuffer, type-based containers need extra uniquing to ensure\r\n    equivalent types don\u0027t result in invalid SPIR-V\r\n  * getSPIRVType now uses a helper function to determine (and utilize) a canonical type\r\n  * unless __constant is generated as a UBO, the canonical type for __constant pointers is __global\r\n  * ArrayStride decorations now check based on the resulting SPIR-V\r\n    result id instead of the LLVM type\r\n* Type mapping maps the canonical type (and base type if it differs)\r\n* Updated how some layouts are generated to account for canonical types\r\n  * difficult to test because we cannot support pointers in structs\r\n    properly\r\n"
    },
    {
      "commit": "77838ff92e0bab0f6bc61d0d9bddcfa21695b7ca",
      "tree": "ec734460ad248239a57512b1e46d464b20d6a65f",
      "parents": [
        "8eb48cc932fdf7fc3ee03bb93dea7cd5cc09afd7"
      ],
      "author": {
        "name": "Kévin Petit",
        "email": "kpet@free.fr",
        "time": "Mon Oct 19 17:54:51 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 19 17:54:51 2020"
      },
      "message": "Add support for -cl-std\u003dCL3.0 (#653)\n\nAlways enable support for non-uniform work-groups when compiling as\r\nCL3.0.\r\n\r\nSigned-off-by: Kévin Petit \u003ckpet@free.fr\u003e"
    },
    {
      "commit": "8eb48cc932fdf7fc3ee03bb93dea7cd5cc09afd7",
      "tree": "bd1d2e57253fb905e3150d0bf328d06ce3140804",
      "parents": [
        "3a11614ee40907c6f9edd99bd7d23b123111e947"
      ],
      "author": {
        "name": "Marco Antognini",
        "email": "marco.antognini@arm.com",
        "time": "Mon Oct 19 17:54:25 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 19 17:54:25 2020"
      },
      "message": "Lower function parameters and return type (#646)\n\n* Lower function parameter and return types\r\n\r\nTake advantage of inlining facilities to support functions with\r\nlong-vector arguments or return types.\r\n\r\nAdd tests for BinaryOperator that rely on function lowering.\r\n\r\nSigned-off-by: Marco Antognini \u003cmarco.antognini@arm.com\u003e\r\n\r\n* Remove dead functions after lowering\r\n\r\nAfter lowering, the original functions are no longer required and\r\ntherefore removed from their module.\r\n\r\nUpdate test to cover this functionality.\r\n\r\nSigned-off-by: Marco Antognini \u003cmarco.antognini@arm.com\u003e"
    },
    {
      "commit": "3a11614ee40907c6f9edd99bd7d23b123111e947",
      "tree": "2e0d32e5c050351e371e78e2b0b994eb12e33bff",
      "parents": [
        "5caeaff0a4ca47818e28093b1d6b76b418b7ee49"
      ],
      "author": {
        "name": "James Price",
        "email": "jrprice@google.com",
        "time": "Fri Oct 16 10:52:18 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 16 10:52:18 2020"
      },
      "message": "Update LLVM (#650)\n\n* Update LLVM\r\n\r\n* InstCombine replaces the code we generate for the rotate builtin\r\n  with an llvm.fshl intrinsic, so handle that in ReplaceLLVMIntrinsicsPass\r\n\r\n* Add direct test for llvm.fshl replacement"
    },
    {
      "commit": "5caeaff0a4ca47818e28093b1d6b76b418b7ee49",
      "tree": "e86989de37c0231600d41eb9b7a3b09abfd64da0",
      "parents": [
        "251341d1e5bb80bcf70a3dd5c16cce8c54b46c78"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Fri Oct 09 18:41:29 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 09 18:41:29 2020"
      },
      "message": "Convert write_only images in CL2.0 and later for unspecialized images (#649)\n\nFixes #648\r\n\r\n* Convert write_only images to read_write images in OpenCL 2.0 and later\r\n  even when a specialization of the image is not found"
    },
    {
      "commit": "251341d1e5bb80bcf70a3dd5c16cce8c54b46c78",
      "tree": "dafd4f8669a0da38e8c2bb8b3c3790e4bcfb4f89",
      "parents": [
        "446b86ed4185a365ea3953e5b58d0e4f1aa68c8e"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Thu Oct 08 19:05:06 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 08 19:05:06 2020"
      },
      "message": "Update LLVM (#647)\n\n* UndoByVal pass needs to also remove the alignment attribute from byval\r\n  parameters"
    },
    {
      "commit": "446b86ed4185a365ea3953e5b58d0e4f1aa68c8e",
      "tree": "811d3c7184b17f951a672e5e43d4cf90d5650264",
      "parents": [
        "9b29851dac92cd09d18924fbee47cf175dc1fc71"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Wed Sep 30 17:01:01 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 30 17:01:01 2020"
      },
      "message": "Update LLVM (#644)\n\n* Fix calculations in POD args clustering"
    },
    {
      "commit": "9b29851dac92cd09d18924fbee47cf175dc1fc71",
      "tree": "082847f0ffed05de4ebd2f9665f7caf3179722be",
      "parents": [
        "f6bc825a616959f6ae94f492038ed846f9e05530"
      ],
      "author": {
        "name": "Marco Antognini",
        "email": "marco.antognini@arm.com",
        "time": "Tue Sep 29 12:38:49 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 29 12:38:49 2020"
      },
      "message": "Lower BinaryOperator instructions on long-vector (#642)\n\n* Lower BinaryOperator\r\n\r\nIntroduce some logic to lower instructions that use long-vector\r\noperands. Initiate support with BinaryOperators. Add a test case testing\r\nthis lowering.\r\n\r\nLower vector of 8 or more scalars to aggregate of the same number of\r\nscalar elements.\r\n\r\nLater, a recursive solution will be implemented. In the meantime, to\r\nmake commits smaller and still produce valid LLVM IR, the operands of\r\nthe BinaryOperators are converted to equivalent aggregate values.\r\nSimilarly, the aggregates generated by the scalarisation of the\r\nBinaryOperators are converted back to vector values.\r\n\r\nSigned-off-by: Marco Antognini \u003cmarco.antognini@arm.com\u003e\r\n\r\n* Add cache for value and type lowering\r\n\r\nReuse previous lowering instead of redoing the same work. The\r\ninstruction cache will also be used to remove dead instructions.\r\n\r\nSigned-off-by: Marco Antognini \u003cmarco.antognini@arm.com\u003e\r\n\r\n* Remove dead instructions after lowering\r\n\r\nRemoval is done on best-effort basis. InstCombine and other optimisation\r\npass are expected to further simplify the IR generated by the lowering\r\nphase, especially once more instructions are supported.\r\n\r\nUpdate test cases to cover the removal.\r\n\r\nSigned-off-by: Marco Antognini \u003cmarco.antognini@arm.com\u003e"
    },
    {
      "commit": "f6bc825a616959f6ae94f492038ed846f9e05530",
      "tree": "6be62d2bc1e9d097c7e9f2bd640a3d345f06ee95",
      "parents": [
        "535998c8edfda891efdd9d13c6aa6887d77abd1e"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Wed Sep 23 18:58:55 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 23 18:58:55 2020"
      },
      "message": "Read write images (#643)\n\n* Treat read/write images the same as write-only images for translation\r\n  * storage image\r\n  * OpImageRead/OpImageWrite functionality\r\n  * When using OpenCL 2.0 or later, convert write only images to read\r\n  write images\r\n* Add some helpers for identifying storage images\r\n* fix some capability generation\r\n* Rename ArgKind::ReadOnlyImage to ArgKind::SampledImage\r\n* Rename ArgKind::WriteOnlyImage to ArgKind::StorageImage\r\n  * write-only and read-write images are both storage images\r\n* Fix how NonReadable is generated for images\r\n  * no longer based just on ArgKind\r\n* update tests\r\n  * StorageImageWriteWithoutFormat generated only when a write is\r\n    present\r\n* Check that storage images are both read from and written to when a\r\n  barrier is present\r\n* Tests for\r\n  * builtins (read, write, queries) for 1D, 2D and 3D\r\n  * specialization\r\n  * reflection\r\n"
    },
    {
      "commit": "535998c8edfda891efdd9d13c6aa6887d77abd1e",
      "tree": "a97c482d5e9dadd9de01ee00d1daed57acd95e4b",
      "parents": [
        "389ab6daa70254bc1ddba0c73cc1b05713256775"
      ],
      "author": {
        "name": "Marco Antognini",
        "email": "marco.antognini@arm.com",
        "time": "Wed Sep 16 17:48:51 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 16 17:48:51 2020"
      },
      "message": "Introduce stubs for long-vector support (#638)\n\n* Ensure DeclVisitor and IsSupportedType fully recurse\r\n\r\nAdd test cases covering errors on long-vector types.\r\n\r\nEnsure all the children of clang::Decl are visited by implementing more\r\nspecific methods of RecursiveASTVisitor.\r\n\r\nUpdate IsSupportedType to cover additional cases and to abort on type\r\nnot explicitly covered.\r\n\r\n* Add stubs for lowering long-vector types\r\n\r\nAdd a new, experimental command line option, --long-vector, to turn on\r\nsupport for lowering long-vector types which is implemented by\r\nLongVectorLoweringPass. For now, this pass does nothing; subsequent\r\ncommits will gradually bring in new features.\r\n\r\nWhen this option is provided, accept long-vector types except when used\r\nas kernel parameters. This feature is intentionally left unsupported for\r\nnow and should be revisited when there is definite proof that kernel\r\nparameters can be safely lowered as well.\r\n\r\nAdd tests covering the frontend changes.\r\n\r\nIntroduce CustomDiagnosticUnsupportedKernelArgs. Remove explicit\r\ndiagnostic ID and rely on C++ to generate appropriate values for the\r\nCustomDiagnosticType enumeration.\r\n\r\nUpdate options.ll test to ensure it can be used with clspv-opt.\r\n\r\nSigned-off-by: Marco Antognini \u003cmarco.antognini@arm.com\u003e"
    },
    {
      "commit": "389ab6daa70254bc1ddba0c73cc1b05713256775",
      "tree": "d305c1f2e36f50842b302f6ba104864e1f7ff76d",
      "parents": [
        "7506abbc58dbc56c43aa0457ee0eafb5ba8318b3"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Mon Sep 14 17:22:57 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 14 17:22:57 2020"
      },
      "message": "Update LLVM (#641)\n\n* Fix some test expectations\r\n* Remove a test that no longer checks the original issue\r\n* Disable libxml2 for mac kokoro bots"
    },
    {
      "commit": "7506abbc58dbc56c43aa0457ee0eafb5ba8318b3",
      "tree": "2d0fb7ae8343ab7156e1cefc4277541766760c30",
      "parents": [
        "5a8c3be37623e65d175b34f541b544ef00bd2224"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Thu Sep 10 19:02:55 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 10 19:02:55 2020"
      },
      "message": "Fix how ArrayStride is generated for pointers (#640)\n\nFixes #637\r\n\r\n* Pointer type for the base operand of an OpPtrAccessChain requires\r\n  array stride, not the result of the pointer access chain\r\n  * added some new tests\r\n* Fixed various lint warnings\r\n  * use empty() instead of size() compared to zero\r\n  * remove some empty lines\r\n* Fix typo in a test\r\n"
    },
    {
      "commit": "5a8c3be37623e65d175b34f541b544ef00bd2224",
      "tree": "17b7f764e1a21d161f6a9e89d3b30fad51f7e463",
      "parents": [
        "68e5c51444d254819830509332072dbeb08fd94e"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Wed Sep 09 17:44:26 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 09 17:44:26 2020"
      },
      "message": "Update LLVM (#639)\n\n* Replace uses of the deprecated VectorType::getNumElements()\r\n"
    },
    {
      "commit": "68e5c51444d254819830509332072dbeb08fd94e",
      "tree": "018019df5153c0bcfebc1d96b008c01c3489456c",
      "parents": [
        "636e799cdf703f7f1944b05dc0792927de8c94aa"
      ],
      "author": {
        "name": "Marco Antognini",
        "email": "marco.antognini@arm.com",
        "time": "Wed Sep 09 15:08:57 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 09 15:08:57 2020"
      },
      "message": "Map llvm.unreachable to OpUnreachable (#636)\n\nSigned-off-by: Marco Antognini \u003cmarco.antognini@arm.com\u003e"
    },
    {
      "commit": "636e799cdf703f7f1944b05dc0792927de8c94aa",
      "tree": "d63c4b0b256597dacc187b4b3a1fc364ee089e99",
      "parents": [
        "899162d1809173afca3f4a623cb20340625dcf07"
      ],
      "author": {
        "name": "gnl21",
        "email": "gnl021@gmail.com",
        "time": "Wed Sep 09 15:08:16 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 09 15:08:16 2020"
      },
      "message": "Implement a replacement for log1p function (#626)\n\nImplemented as \"log(1+x)\", so may suffer from precision problems.\r\n\r\n* Update tests and docs for log1p\r\n"
    },
    {
      "commit": "899162d1809173afca3f4a623cb20340625dcf07",
      "tree": "2261d7aa422521eaaabab895d2115d78345bd9a8",
      "parents": [
        "e071a42d37c4e7d49a21a60b054bb97ad6bc548c"
      ],
      "author": {
        "name": "Kévin Petit",
        "email": "kpet@free.fr",
        "time": "Tue Sep 08 18:16:08 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 08 18:16:08 2020"
      },
      "message": "Enable CompileFromSourceString to return a build log (#635)\n\nAlso stop printing the log to stderr.\r\n\r\nSigned-off-by: Kévin Petit \u003ckpet@free.fr\u003e"
    },
    {
      "commit": "e071a42d37c4e7d49a21a60b054bb97ad6bc548c",
      "tree": "9f896b1f4d1a6f90aff90eede388c5f1dd50e84e",
      "parents": [
        "a1ded65a3984bf89272a9a614ed53c40d89fe8e4"
      ],
      "author": {
        "name": "Marco Antognini",
        "email": "marco.antognini@arm.com",
        "time": "Thu Sep 03 23:10:47 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 23:10:47 2020"
      },
      "message": "Add support for --instcombine in clspv-opt (#632)\n\nUpdate test. InstCombine will be used to simplify upcoming tests related to\r\nlowering of long-vectors.\r\n\r\nSigned-off-by: Marco Antognini \u003cmarco.antognini@arm.com\u003e"
    },
    {
      "commit": "a1ded65a3984bf89272a9a614ed53c40d89fe8e4",
      "tree": "41d60c4bfea8e36d8575c8f5ac7a771f6ff7b315",
      "parents": [
        "3b60977835dc4bbac3eac23f1e971b0c17b0ad09"
      ],
      "author": {
        "name": "Marco Antognini",
        "email": "marco.antognini@arm.com",
        "time": "Thu Sep 03 23:10:35 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 23:10:35 2020"
      },
      "message": "Don\u0027t buffer test output (#633)\n\nWhen using `cmake --build \u003cPATH\u003e --target check-spirv`, print the tests\r\noutput directly to the console instead of waiting for all the tests to\r\nhave finished to print everything in bulk. Tested with Ninja.\r\n\r\nSigned-off-by: Marco Antognini \u003cmarco.antognini@arm.com\u003e"
    },
    {
      "commit": "3b60977835dc4bbac3eac23f1e971b0c17b0ad09",
      "tree": "9b6ebd50beb4ac6650947be031f9cf9677f74bbf",
      "parents": [
        "385533683c252f6a6939a622e7bb3602e0544872"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Thu Sep 03 23:10:17 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 23:10:17 2020"
      },
      "message": "Support mixed reqd_work_group_size attributes (#630)\n\nFixes #629\r\n\r\n* Generate WorkgroupSize builtin if not all kernels specify\r\n  reqd_work_group_size\r\n  * Do not generate LocalSize execution mode if WorkgroupSize builtin is\r\n    generated\r\n  * new tests\r\n\r\n"
    },
    {
      "commit": "385533683c252f6a6939a622e7bb3602e0544872",
      "tree": "ef42a7d4883c55530ae967a79856580a5dbc43d5",
      "parents": [
        "5cdbce3ab8a7a57ee74cdfde563cfe06f8c7eeb7"
      ],
      "author": {
        "name": "James Price",
        "email": "jrprice@google.com",
        "time": "Thu Sep 03 22:30:40 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 22:30:40 2020"
      },
      "message": "Add support for rint builtins (#634)\n\n"
    },
    {
      "commit": "5cdbce3ab8a7a57ee74cdfde563cfe06f8c7eeb7",
      "tree": "167dadb20659d920c6cf531ba11a7baad8848557",
      "parents": [
        "fb288115a6eecc77633c66ba437d256288d9b1be"
      ],
      "author": {
        "name": "Marco Antognini",
        "email": "marco.antognini@arm.com",
        "time": "Tue Sep 01 13:26:06 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 01 13:26:06 2020"
      },
      "message": "Improve SimplifyPointerBitcastPass (#625)\n\nFix support for simplification of trivial casts.\r\nAdd test covering this.\r\n\r\nSigned-off-by: Marco Antognini \u003cmarco.antognini@arm.com\u003e"
    },
    {
      "commit": "fb288115a6eecc77633c66ba437d256288d9b1be",
      "tree": "c0a3f2e4458456d88944a3fb93382dab7f1af562",
      "parents": [
        "fe6a3dfd445e9dfa8653f169d670b6046f516a94"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Mon Aug 31 15:26:53 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 31 15:26:53 2020"
      },
      "message": "Update LLVM (#628)\n\n* Replace uses of ElementCount::Min, which is now private"
    },
    {
      "commit": "fe6a3dfd445e9dfa8653f169d670b6046f516a94",
      "tree": "41e488a7c161e346d6253f47ca012fc2874aed10",
      "parents": [
        "858ff3198ec31e9116ac2bbae0b7d9496488055b"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Fri Aug 28 02:42:44 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 28 02:42:44 2020"
      },
      "message": "Update llvm (#627)\n\n* Fix some tests by running specific passes\r\n* unify initialization of multi version ubo functions\r\n"
    },
    {
      "commit": "858ff3198ec31e9116ac2bbae0b7d9496488055b",
      "tree": "7000856b4c43662a934c8ff0ec668a34ae52cb06",
      "parents": [
        "ad1a12f27c8eb4c4f26f5b4b5d680b564e6cb132"
      ],
      "author": {
        "name": "Marco Antognini",
        "email": "marco.antognini@arm.com",
        "time": "Wed Aug 26 19:47:40 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 26 19:47:40 2020"
      },
      "message": "Various improvements to the compilation process (#621)\n\n* Improve support for shared build\r\n\r\nFix compilation for clspv-reflection when doing a shared-library build.\r\n - Add clspv_passes to the public list of dependencies of clspv_core so\r\n   that clspv-opt, clspv-reflection and any other target depending on\r\n   clspv_core don\u0027t have to link against the dependencies of\r\n   clspv_passes.\r\n - Remove unnecessary dependencies of clspv-opt now that they are\r\n   transitively added thanks to the previous point.\r\n - Move clangCodeGen dependency to clspv_core because it isn\u0027t used by\r\n   clsvp_passes.\r\n - Because SPIRV-Tools-shared has hidden symbol visibility, some symbols\r\n   are undefined when linking against SPIRV-Tools (which is an alias for\r\n   SPIRV-Tools-shared or SPIRV-Tools-static based on build options).\r\n   This is worked around by always linking against SPIRV-Tools-static,\r\n   regardless of the build options.\r\n - Don\u0027t explicitly list LLVM components as dependencies as this is\r\n   resolved automatically by CMake.\r\n\r\nSigned-off-by: Marco Antognini \u003cmarco.antognini@arm.com\u003e\r\n\r\n* Improve support for static build\r\n\r\nUse OBJECT library for clspv_passes to ensure all the symbols for global\r\nstatic variables are present in clspv-opt, ensuring passes using a\r\nstatic RegisterPass\u003c\u003e object are registered. This is effectively\r\nequivalent to using the linker option --whole-archive for static build,\r\nbut in a more portable way as not all toolchains support this option.\r\n\r\nPreviously, the output of `clspv-opt --help-hidden` and `clspv\r\n--help-hidden` would differ from a shared library build to a static\r\nlibrary build. There are still some differences but they seem to be\r\nunrelated to clspv passes but rather related to LLVM passes.\r\n\r\nThe MultiVersionUBOFunctionsPass pass is using such a global static\r\nobject. Update existing test to cover this pass.\r\n\r\nBump required CMake version. Chose 3.13.4 as it is required by the\r\nlatest LLVM and it supports linking against OBJECT libraries.\r\n\r\nAdd a missing dependency of clspv_passes that was identified by using\r\nOBJECT library when using a shared build.\r\n\r\nSigned-off-by: Marco Antognini \u003cmarco.antognini@arm.com\u003e"
    },
    {
      "commit": "ad1a12f27c8eb4c4f26f5b4b5d680b564e6cb132",
      "tree": "3b72ee43585ac75a2d42b842659cd84bc6913d3a",
      "parents": [
        "931253b2d91f5a28f2e2598c89bdf6665957405c"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Tue Aug 25 13:18:38 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 25 13:18:38 2020"
      },
      "message": "Replace pointer bitcasts should handle array sources better (#620)\n\nFixes #619\r\n\r\n* When a pointer to the first element of an array is the source of a\r\n  bitcast, generate a gep to unwrap the arrays and generate a new\r\n  bitcast for handling\r\n  * Added a test\r\n* Added an extra pass of DCE since ReplaceLLVMIntrinsics leaves dead\r\n  code around\r\n"
    },
    {
      "commit": "931253b2d91f5a28f2e2598c89bdf6665957405c",
      "tree": "86dcdaf6dcec0f6d328d869fbe80e9a36fbcf949",
      "parents": [
        "5e0232d2e99e3a64dbd7ddeca0f96e5f03cba3a4"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Thu Aug 20 21:15:38 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 20 21:15:38 2020"
      },
      "message": "Update llvm (#618)\n\n* Replace uses of private ElementCount constructors\r\n"
    },
    {
      "commit": "5e0232d2e99e3a64dbd7ddeca0f96e5f03cba3a4",
      "tree": "6d077b889860cb837f9df932e683c05b13220cee",
      "parents": [
        "5ed92f50f1a79d338e5c009090ef0f7753d0ee9b"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Mon Aug 17 16:47:00 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 17 16:47:00 2020"
      },
      "message": "Add missing break (#617)\n\n"
    },
    {
      "commit": "5ed92f50f1a79d338e5c009090ef0f7753d0ee9b",
      "tree": "fc2d541d0a9b8effeb1384334e1a061e2d4d23eb",
      "parents": [
        "d37ec0e1d35bc2d0e6b0d19a664789e6a2d2532e"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Wed Aug 12 18:54:39 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 12 18:54:39 2020"
      },
      "message": "Rewrite XFAIL\u0027d tests (#616)\n\nFixes #473\r\n\r\n* Replace xfail\u0027d tests with clspv-opt targeted tests\r\n"
    },
    {
      "commit": "d37ec0e1d35bc2d0e6b0d19a664789e6a2d2532e",
      "tree": "ad46b3adfda70c5ee2bd203d2f91e1d048967413",
      "parents": [
        "86ce19c0130bd13a70862a50a9aa9676eba6548c"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Wed Aug 05 23:43:08 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 05 23:43:08 2020"
      },
      "message": "Update LLVM (#615)\n\n"
    },
    {
      "commit": "86ce19c0130bd13a70862a50a9aa9676eba6548c",
      "tree": "7aa702f1bd9d904ce15d5a6af956f92230e8a341",
      "parents": [
        "55d518644f61470c421df4229e89abb7a0d5e974"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Wed Aug 05 17:09:19 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 05 17:09:19 2020"
      },
      "message": "Embedded reflection (#612)\n\nFixes #592\r\n\r\nChanges the descriptor map to be implemented as a non-semantic extended instruction set embedded directly in the SPIR-V.\r\n\r\n* remove -descriptormap\r\n* added a new tool clspv-reflection to dump the old style descriptor map\r\n  * legacy tests use this instead of -descriptormap where they checked the descriptor results\r\n* remove DescriptorMap.{cpp,h}\r\n* add Sampler.h as a replacement for the sampler enums in descriptor map\r\n* docs update\r\n* new header  built for clspv reflection extended instruction set"
    },
    {
      "commit": "55d518644f61470c421df4229e89abb7a0d5e974",
      "tree": "40f3f3f74804fc8a661a07459db30b4790b32010",
      "parents": [
        "c99e030686f76c43cd09a2c641ae86cbc54a3300"
      ],
      "author": {
        "name": "Marco Antognini",
        "email": "antognini.marco@gmail.com",
        "time": "Tue Jul 21 16:50:07 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 21 16:50:07 2020"
      },
      "message": "Use NMax/NMin for fmax/fmin (#506) (#609)\n\nOpenCL C fmax/fmin maps to GLSL SPIR-V instruction NMax/NMin due to the\r\nbehaviour requirement on NaN inputs.\r\n\r\nApplies by transitivity to OpenCL C fract.\r\n\r\nSigned-off-by: Marco Antognini \u003cmarco.antognini@arm.com\u003e"
    },
    {
      "commit": "c99e030686f76c43cd09a2c641ae86cbc54a3300",
      "tree": "23015dd372d720f4c30995fbf5691bed095e7995",
      "parents": [
        "12d2c18a04eaea8a5742a2d363defafb38b5aaa3"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Tue Jul 21 15:28:44 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 21 15:28:44 2020"
      },
      "message": "Add deprecation notice for descriptor map (#611)\n\n"
    },
    {
      "commit": "12d2c18a04eaea8a5742a2d363defafb38b5aaa3",
      "tree": "25867b4db4339053eed9684a72c840cc7ace14fd",
      "parents": [
        "88ad91c4f9b7f38686d6454caa644f435a407bc7"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Mon Jul 20 12:22:42 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 20 12:22:42 2020"
      },
      "message": "Fix barrier and mem_fence scopes (#610)\n\nFixes #604\r\n\r\n* barrier, work_group_barrier and mem_fence should default to workgroup\r\n  memory scope\r\n* support CL 2.0 explicit memory scope barriers\r\n* support sub_group_barrier\r\n* use AcquireRelease semantics instead of SequentiallyConsistent\r\n\r\n"
    },
    {
      "commit": "88ad91c4f9b7f38686d6454caa644f435a407bc7",
      "tree": "1b5559db9a83244f1734d4b09e6cc2a383343344",
      "parents": [
        "806a5d8aa57b73fd7a291d11c88aad8121dc3713"
      ],
      "author": {
        "name": "Marco Antognini",
        "email": "antognini.marco@gmail.com",
        "time": "Fri Jul 17 12:13:33 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 17 12:13:33 2020"
      },
      "message": "Fix missing link reference to build clspv-opt (#608)\n\nLink against LLVMSupport to fix this issue:\r\n\r\n    clspv-opt.dir/main.cpp.o: undefined reference to symbol \u0027_ZTVN4llvm2cl11OptionValueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE\u0027\r\n    libLLVMSupport.so.11git: error adding symbols: DSO missing from command line\r\n\r\nThis only affects shared library builds.\r\n\r\nAdd transitive dependencies as well to ensure check-spirv works out of\r\nthe box with shared library build.\r\n\r\nSigned-off-by: Marco Antognini \u003cmarco.antognini@arm.com\u003e"
    },
    {
      "commit": "806a5d8aa57b73fd7a291d11c88aad8121dc3713",
      "tree": "603b67cb9061ab667ccec954ecec18f865ca9370",
      "parents": [
        "e645e6520ddf6d272129fb70c38895ed0513aaf7"
      ],
      "author": {
        "name": "SJW",
        "email": "48454132+sjw36@users.noreply.github.com",
        "time": "Wed Jul 15 17:51:38 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 15 17:51:38 2020"
      },
      "message": "cl_khr_subgroups support (#603)\n\nContributes to #602.\r\n\r\n\r\n* Added SPIRVProducerPass::addSPIRVGlobalVariable to also capture entry_point_interface when -spirv-std\u003d1.4 or greater\r\n* Added builtin function mapping:\r\n  * get_sub_group_size - SubgroupSize\r\n  * get_num_sub_groups - NumSubgroups\r\n  * get_sub_group_id - SubgroupId\r\n  * get_sub_group_local_id - SubgroupLocalInvocationId\r\n\r\n  * sub_group_all - OpGroupNonUniformAll\r\n  * sub_group_any - OpGroupNonUniformAny\r\n  * sub_group_broadcast - OpGroupNonUniformBroadcast\r\n\r\n  * sub_group_\u003cgroup_operation\u003e_add\r\n    * INT: OpGroupNonUniformIAdd\r\n    * FLOAT: OpGroupNonUniformFAdd\r\n  * sub_group_\u003cgroup_operation\u003e_min\r\n    * INT: OpGroupNonUniformSMin\r\n    * UINT: OpGroupNonUniformUMin\r\n    * FLOAT: OpGroupNonUniformFMin\r\n  * sub_group_\u003cgroup_operation\u003e_max\r\n    * INT: OpGroupNonUniformSMax\r\n    * UINT: OpGroupNonUniformUMax\r\n    * FLOAT: OpGroupNonUniformFMax\r\n  * With \u003cgroup_operation\u003e correspondingly:\r\n    * reduce - GroupOperationReduce\r\n    * scan_exclusive - GroupOperationExclusiveScan\r\n    * scan_inclusive - GroupOperationInclusiveScan\r\n\r\nAdded tests in test/SubGroup:\r\n\r\n* sub_group_broadcast.cl\r\n* sub_group_id.cl\r\n* sub_group_reduce.cl\r\n* sub_group_scan_exclusive.cl\r\n* sub_group_scan_inclusive.cl\r\n\r\n* Documented in OpenCLOnVulkan.md\r\n* make -spv-version a support command-line switch\r\n* require constant laneId for sub_group_barrier\r\n"
    },
    {
      "commit": "e645e6520ddf6d272129fb70c38895ed0513aaf7",
      "tree": "2694388b8aa6f6c084ec18f51a157e504915e855",
      "parents": [
        "e2a62757db2f35186921cb11f3859337eeb7bc31"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Fri Jul 10 14:16:50 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 10 14:16:50 2020"
      },
      "message": "Remove sampler restrictions (#607)\n\nFixes #520\r\n\r\n* Samplers no longer require a sampler map"
    },
    {
      "commit": "e2a62757db2f35186921cb11f3859337eeb7bc31",
      "tree": "67b79c27d6375366e9a6b8fceeac230d3f807bef",
      "parents": [
        "d0eb9057416fa4b5b5d28fb89b779838471a1048"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Fri Jul 10 02:53:23 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 10 02:53:23 2020"
      },
      "message": "Update msvc 2017 (#606)\n\n* Update windows build scripts for new VM\r\n* Add build scripts for msvc 2019 release\r\n* fix some windows build issues\r\n"
    },
    {
      "commit": "d0eb9057416fa4b5b5d28fb89b779838471a1048",
      "tree": "db1bebac6a9facbedf329c6d2416be843cf321af",
      "parents": [
        "b3e2b6d9d8c2b16ae8c48b2c175b3e76268b268c"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Tue Jul 07 17:12:01 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 07 17:12:01 2020"
      },
      "message": "Update LLVM (#605)\n\n* add alignments to AtomicRMWInst"
    },
    {
      "commit": "b3e2b6d9d8c2b16ae8c48b2c175b3e76268b268c",
      "tree": "6009e143a0aafdb51b9e795a6320582c2977bfbf",
      "parents": [
        "5be685c468d66f73c632fefb6334ce5b6484a1d6"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Thu Jun 25 03:59:57 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 25 03:59:57 2020"
      },
      "message": "Update uses of LLVM (#601)\n\n* Fix missing includes\r\n* Fix uses of deprecated vector type constructor\r\n* Skipping deps update till the windows bot gets sorted out"
    },
    {
      "commit": "5be685c468d66f73c632fefb6334ce5b6484a1d6",
      "tree": "1e476e1af281321ac9baa5c7961b15f07d0f2b39",
      "parents": [
        "6153137f50fc8169d5fbc8dbfc81db90ea565f46"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Wed Jun 10 15:18:08 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 10 15:18:08 2020"
      },
      "message": "Add compile option to check switches (#600)\n\n* Fix some missing cases in specialize images\r\n* Add gcc and clang compiler switches to check switches"
    },
    {
      "commit": "6153137f50fc8169d5fbc8dbfc81db90ea565f46",
      "tree": "bcbaf9c53dacf83cd89125fb455f61c99972bfbf",
      "parents": [
        "227e97857852d9bd7247ecaa9ff382210864a8a2"
      ],
      "author": {
        "name": "SJW",
        "email": "48454132+sjw36@users.noreply.github.com",
        "time": "Tue Jun 09 12:31:08 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 09 12:31:08 2020"
      },
      "message": "Builtins refactor - phase3 (#598)\n\n* moved all function names in Constants.h to builtins (mangled names in Constants.cpp)\r\n  * add some missing functions (pack, unpack, composite_construct, copy_memory, atomic_xor)\r\n* replaced all new function creation with name generation from Builtins::GetMangledFunctionName (ReplaceOpenCLBuiltinPass.cpp)\r\n* moved most CallInst codegen for Builtins to GenerateInstruction (from HandleDeferredInstruction)\r\n* removed all image test routines from Builtins (replaced with Builtins::Lookup)\r\n* updated IR tests\r\n\r\nEnhancement as part of https://github.com/google/clspv/issues/545\r\n"
    },
    {
      "commit": "227e97857852d9bd7247ecaa9ff382210864a8a2",
      "tree": "bb9b063979b409e12b9743b26eb2faec01e65bfa",
      "parents": [
        "0f814cde0119da72b370249e3be4b6bf6ccbfe83"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Tue Jun 02 19:35:37 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 02 19:35:37 2020"
      },
      "message": "Disable PRE in GVN (#596)\n\nFixes #594\r\n\r\n* Disable PRE in GVN\r\n* add a test\r\n"
    },
    {
      "commit": "0f814cde0119da72b370249e3be4b6bf6ccbfe83",
      "tree": "1db69bc50b9e92adc91933bd833fe1b9cb42ffb1",
      "parents": [
        "616ffa2804e18513f608e83c8d3cf778353ba562"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Tue Jun 02 19:35:14 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 02 19:35:14 2020"
      },
      "message": "Update LLVM (#599)\n\n* Fix rejigged options"
    },
    {
      "commit": "616ffa2804e18513f608e83c8d3cf778353ba562",
      "tree": "e6a4ce5d8204b5b382871170549feefc317387c3",
      "parents": [
        "a8b2af37534b16f473d65de855b9ab11b27c07cb"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Thu May 28 12:24:03 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 28 12:24:03 2020"
      },
      "message": "Handle smax, smin and sclamp in -hack-scf (#597)\n\nFixes #593\r\n\r\n* smax, smin and sclamp now get replaced when -hack-scf is specified\r\n  * they are broken down to compare and select operations\r\n  * the compare is then replaced like the other comparisons\r\n* new tests\r\n"
    },
    {
      "commit": "a8b2af37534b16f473d65de855b9ab11b27c07cb",
      "tree": "47299151d18ac67455f1d2594f0203bc1d0829b2",
      "parents": [
        "fb7e2beaa4a4469a5956f49e79da9cfff13d1e1a"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Wed May 27 12:17:41 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 27 12:17:41 2020"
      },
      "message": "Update LLVM (#595)\n\n* update test for slightly different codegen"
    },
    {
      "commit": "fb7e2beaa4a4469a5956f49e79da9cfff13d1e1a",
      "tree": "7c8ddd4ade3969c4124d874a29d17a2eb3f89500",
      "parents": [
        "6a3930b80a7031083eb2702d8bfd5781b1591213"
      ],
      "author": {
        "name": "alan-baker",
        "email": "alanbaker@google.com",
        "time": "Mon May 25 12:45:39 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 25 12:45:39 2020"
      },
      "message": "Relax frontend 8- and 16-bit type check (#590)\n\n* Allow clustered pod args in ssbo to work despite contradictory command\r\nline options assuming type mangled push constants will succeed\r\n* fix tests\r\n"
    }
  ],
  "next": "6a3930b80a7031083eb2702d8bfd5781b1591213"
}
