https://github.com/halide/Halide

sort by:
Revision Author Date Message Commit Date
7a497fd Don't extract_lane on a VectorInstruction 09 February 2023, 00:05:03 UTC
cf2e889 clang-format; bug fixes 06 February 2023, 19:04:43 UTC
021d9b7 update Makefiles 17 October 2022, 19:51:11 UTC
863cf71 hvx/x86 updates 15 October 2022, 01:22:54 UTC
a317f04 fix for HVX rounding_mul_shr 15 October 2022, 01:21:57 UTC
3f5f89b map saturating ops to LLVM intrinsics 15 October 2022, 01:17:59 UTC
a723b07 syntax fixes 12 October 2022, 20:28:15 UTC
545fd30 conv typos 12 October 2022, 20:16:47 UTC
f4b516f conv typos 12 October 2022, 20:11:32 UTC
b02a064 prefetch typo 12 October 2022, 20:08:21 UTC
3fbef54 fix builds with prefetch 12 October 2022, 19:38:57 UTC
4adaf10 update benchmarks 12 October 2022, 19:07:03 UTC
84576c5 add shared_hvx 12 October 2022, 18:50:44 UTC
eff7c01 hvx bug fixes 12 October 2022, 18:13:05 UTC
867009a add rake integration 08 October 2022, 23:16:29 UTC
8925faf fix hexagon rule + add synthesized casts 08 October 2022, 02:06:21 UTC
4cd3a19 some HVX rules 07 October 2022, 05:34:32 UTC
9a07c02 update benchmark runner 05 October 2022, 23:05:34 UTC
4810e5b Merge branch 'rootjalex/trs-codegen' of github.com:halide/Halide into rootjalex/trs-codegen 05 October 2022, 22:57:44 UTC
da55c34 measure compile times in apps 05 October 2022, 22:56:55 UTC
e6f11e6 Merge branch 'rootjalex/trs-codegen' of github.com:halide/Halide into rootjalex/trs-codegen 05 October 2022, 21:28:16 UTC
ccce606 x86 bug fixes 05 October 2022, 21:26:56 UTC
50f9066 update app Makefiles 03 October 2022, 18:27:04 UTC
25d2d45 bugfixes and better x86 casting 28 September 2022, 21:46:39 UTC
c95dfb8 add conv and dilate benchmarks 28 September 2022, 21:37:46 UTC
d2c502d add benchmarks + synthesized rules 23 September 2022, 16:47:22 UTC
2b65166 merge conflicts 16 September 2022, 22:00:08 UTC
23e56c4 add interleaving support in IRMatch 14 September 2022, 22:26:41 UTC
18b06f0 Revert "[HVX] Simplify constant factor before distributing" (#7013) Revert "[HVX] Simplify constant factor before distributing (#7009)" This reverts commit 69b50af793d6eb850eea3dccb16426479edbff9d. 14 September 2022, 20:49:20 UTC
ace8028 Add minimum GitHub token permissions for workflow (#7011) Signed-off-by: Varun Sharma <varunsh@stepsecurity.io> Signed-off-by: Varun Sharma <varunsh@stepsecurity.io> 14 September 2022, 14:04:29 UTC
655211e Rework Python Extension C++ code (again) (#7010) * Rework Python Extension C++ code (again) My previous effort was too clever for itself: while it worked for Halide's build systems, some other build systems (e.g. Blaze) are much more finicky about the C++ files you build Python extensions from, and re-using the same C++ files with different preprocessor settings turns out to be too problematic there, for reasons that aren't important here. Anyway, the important part here was to rework so that (1) All the C++ source files needed are compiled exactly once (2) All the C++ source files needed can be compiled with the same set of preprocessor definitions To that end, I have extended GenGen's `-r` flag to allow using `-e python_extension`; this emits the bare module-registration code by itself. So now, we generate the Python Extension code as before, but define HALIDE_PYTHON_EXTENSION_OMIT_MODULE_DEFINITION to defeat the standalone module registration for each one, then also compile in the new 'standalone' registration, with HALIDE_PYTHON_EXTENSION_MODULE and HALIDE_PYTHON_EXTENSION_FUNCTIONS defined to fill in the blanks. Also, a little drive-by cleanup in CodeGen_C to make extern "C" blocks more findable, and some restructuring in PyExtGen. * Update user_context_generator.cpp * Dummy source file * IF NOT EXISTS before file(WRITE) 14 September 2022, 02:05:02 UTC
27b8a7d Add one-sided widening intrinsics. (#6967) * implement widen_right_ ops * update HVX patterns with one-sided widening intrinsics * remove unused HVX pattern flags * strengthen logic for finding rounding shifts Co-authored-by: Steven Johnson <srj@google.com> 13 September 2022, 18:14:42 UTC
69b50af [HVX] Simplify constant factor before distributing (#7009) * simplify constant factor before distributing * add simd_op_check test 12 September 2022, 23:51:33 UTC
f60fba2 better saturating narrow handling on x86 12 September 2022, 23:38:55 UTC
ed57f39 add x86 saturating_narrow optimization 12 September 2022, 20:11:50 UTC
47dc786 add reinterpret and upper/lower bounded predicates to IRMatch 12 September 2022, 20:11:26 UTC
e9549bb bounds for widening intrinsics 12 September 2022, 20:10:08 UTC
aed5878 fix arm fvb usage 12 September 2022, 19:46:25 UTC
30ff843 Merge branch 'rootjalex/arm-optimize' of github.com:halide/Halide into rootjalex/trs-codegen 12 September 2022, 19:44:16 UTC
4996cf8 lvalue fix 12 September 2022, 19:43:42 UTC
2fe592b let InstructionSelectors use FuncValueBounds 12 September 2022, 19:38:27 UTC
2740bbb Merge branch 'rootjalex/x86-optimize' of github.com:halide/Halide into rootjalex/arm-optimize 12 September 2022, 18:47:37 UTC
ff47ab0 Fix some bugs in div_round_to_zero (#7008) * Fix some bugs in div_round_to_zero ... and fast_integer_divide_round_to_zero These were never adequately tested, and there were a few issues. * Add missing print 12 September 2022, 16:25:26 UTC
a4f86de Fix Python handling of boolean buffers (#7006) The Python Extension code didn't handle boolean buffers correctly, making it impossible to construct one in Python and pass it thru to Halide-generated code. This fixes that, and also fixes the test that just expected it to fail (!). 11 September 2022, 23:57:33 UTC
c98f193 Couple small fixes to update RISC V to current LLVM flags and enable vscale use. (#6995) Couple small fixes to update RISC V to current LLVM flags and enable vscale use. Co-authored-by: Steven Johnson <srj@google.com> 10 September 2022, 16:02:48 UTC
a0a1d09 Prohibit C99 VLA usage in runtime code (#7005) * Prohibit C99 VLA usage in runtime code AFAICT we aren't doing this in Halide at present, but some experimental code in Google runtime was doing so; this caused some issues with some experimental Clang patches, but also was never really intended to be used in the first place. Adding the flag here to be sure no unintended use creeps back in. While I was there, took the time to ensure that the flags for runtime are unified across CMake and Make. * oops 10 September 2022, 00:07:12 UTC
4e352d3 Clean up Adams2019 CMake file (#7003) 09 September 2022, 16:49:26 UTC
bd74f94 Log target info in performance_fast_pow (#6997) (#6998) Try to gather info to track down heisenbug 08 September 2022, 00:40:05 UTC
6a342ba Merge branch 'main' of github.com:halide/Halide into rootjalex/x86-optimize 08 September 2022, 00:04:21 UTC
e5069ef Apply _Halide_place_dll() to _Halide_gengen (#6999) (#7000) 07 September 2022, 21:15:58 UTC
1644e64 [Codegen] Adapt ModuleAddressSanitizerPass/ModuleSanitizerCoveragePass renaming (#6996) https://github.com/llvm/llvm-project/commit/93600eb50ceeec83c488ded24fa0fd25f997fec6 renamed ModuleAddressSanitizerPass to AddressSanitizerPass. https://github.com/llvm/llvm-project/commit/4c18670776cd6ac31099a455b2b22b38b0408006 renamed ModuleSanitizerCoveragePass. 07 September 2022, 18:28:08 UTC
cbe2e63 Fix compiler warnings in Elf.cpp (#6992) * Fix compiler warnings in Elf.cpp Some versions of GCC will complain that there is a possible use of uninitialized field `Sym<>::st_info` here; that's technically true, in that it is a bitfield that we previously set via two calls, so it temporarily could use uninitialized bits, but those would immediately be overwritten by well-defined bits. That said, the API could have been misused, so I collapsed Sym::set_type and Sym::set_bindings into a single call to avoid this warning. While I was there, I did a little hygiene on Rel<> and Rela<> as well, as there was an unused-but-similarly-dubious API there. Also added some C++17 `if constexpr` love. * Removed constexpr 06 September 2022, 17:18:50 UTC
8b9c081 Fixes for Xcode "new" build system. (#6993) 1. TargetExportScript was running into an Xcode bug with its handling of linker flags. Now using XCODE_ATTRIBUTE_EXPORTED_SYMBOLS_LIST as a workaround. 2. Added a missing dependency in Python module definition code. Fixes #6987 02 September 2022, 01:55:43 UTC
ce2e7f3 Refactor buffer-unpacking code in PythonExtensionGen (#6991) This moves most of the interesting code into the common module block, so we don't risk duplicating code for extensions that contain multiple function definitions. 01 September 2022, 17:58:57 UTC
a57e022 Merge branch 'main' of github.com:halide/Halide into rootjalex/x86-optimize 01 September 2022, 01:30:28 UTC
95e37ee Improve error-handling in Python Extensions (#6986) * Improve error-handling in Python Extensions Currently, Python Extensions don't make any effort to override `halide_error`, so the default (which aborts) is generally used... this is very unfriendly. This modifies the standard Python Extension glue code to hook halide_error, saving the text in a thread local, and then throwing a Python exception after the extension's AOT call is finished (if an error occurred, of course). Also does a drive-by default hooking of `halide_print` to ensure that it goes to whatever Python thinks that `stdout` is. (Note that it would be really nice if we could use closures of some sort for halide_error, halide_print, etc so that we could save context in the actual Python module, rather than in a thread-local global var, but this currently isn't possible without nontrivial refactoring in the Halide runtime.) * Make Windows happy * Remove dangling code bits * Allow defeating of error-handler via HALIDE_PYTHON_EXTENSION_OMIT_ERROR_AND_PRINT_HANDLERS 31 August 2022, 21:44:17 UTC
e531e24 Fix markdown links (#6988) 31 August 2022, 16:55:51 UTC
386e1ee Add `add_halide_runtime` rule (#6985) Fixes #6981 30 August 2022, 20:19:58 UTC
e7c1c86 Add test for _Halide_target_export_single_symbol (#6983) Add test for _Halide_target_export_single_symbol 29 August 2022, 23:09:20 UTC
c24b406 Add add_halide_python_extension_library() rule (#6979) * Add add_halide_python_extension_library() rule This adds a rule to create a single Python extension library from one (or more) halide_library rules. This allows you to package multiple Halide filters into a single Python module, which is nice because (1) being able to organize is good, and (2) all the filters in a single Python extension module share the same Halide runtime, including (e.g.) thread pools and method overrides. (It also removes the just-recently-added PYTHON_EXTENSION_LIBRARY option from the add_halide_library rule, as this new rule is better and more flexible in pretty much every way.) This modifies the content of our `python_extension` output in such a way that existing uses should be completely unaffected, but defining the right preprocessor macros allows us to split the function wrappers up from the method-definition declaration, so we don't have to generate any new code artifiacts to make this work. Partially addresses #6956. * Omits -D in target_compile_definitions * be explicit about setting to empty * Add quotes * Add comments re BUILD_INTERFACE * Add MODULE_NAME comment * Remove "defined in HalideGeneratorHelpers.cmake" * Add comment re add_halide_runtime() * osx, macos, darwin, oh m * blankity blank blank * Use OBJECT library instead * Add comment about X-macros * Update HalideGeneratorHelpers.cmake 29 August 2022, 20:48:23 UTC
5a09dda Fix XCode by wrapping weights in an OBJECT library (#6977) The XCode "new build system" doesn't like generated source files to be associated with more than one target. Going through an OBJECT library like this fixes that problem, but also saves us a compilation, so it's a good thing to do anyway. Fixes #6976 26 August 2022, 00:42:26 UTC
50018c4 Small refactor to remove confusion between CodeGen_LLVM and CodeGen_Internal. (#6973) * Small refactor to remove confusion between CodeGen_LLVM and CodeGen_Internal. 25 August 2022, 23:01:39 UTC
f6eb2bf update SpecificExpr comment + remove dangling TODO comments 24 August 2022, 17:02:38 UTC
1eb0e94 clang format 24 August 2022, 16:49:48 UTC
3b0dc43 missing && 24 August 2022, 16:35:35 UTC
5258627 Merge branch 'main' of github.com:halide/Halide into rootjalex/x86-optimize 24 August 2022, 16:23:10 UTC
4877b9f Lower saturating_cast in bounds inference (#6970) * lower saturating_cast in bounds inference * openGL fix to saturating_cast 24 August 2022, 16:21:24 UTC
292d8e5 clang format 24 August 2022, 16:10:53 UTC
9a5327c add better type checking in IRMatch for SpecificExpr cases 24 August 2022, 16:06:47 UTC
068f1e2 Don't cache Halide_ASAN_ENABLED (#6969) check_cxx_symbol_exists saves its output in the cache and does not run if its destination variable is defined. This is OK when used to test something that necessitates a totally fresh configuration, like any property of the target architecture, which would require changing the toolchain file. However, the result here can change if someone just modifies CMAKE_CXX_FLAGS, so it can get out of sync in some cases. 24 August 2022, 00:35:10 UTC
eacadb6 Use CMake target to handle vendored SPIRV headers (#6968) 24 August 2022, 00:35:00 UTC
2f0957b CMake packaging fixes (#6966) * Add Halide_ASAN_ENABLED to package. * Fix handling of optional components. Make PNG/JPEG optional. * Make it easier to find HalideHelpers Before this change, users would either need to set Halide_ROOT to a Halide installation path or add said path to CMAKE_PREFIX_PATH. If they tried to use a different mechanism, like setting Halide_DIR or directly annotating their find_package call with HINTS or PATHS, then it would fail to find HalideHelpers.cmake. Adding this hint inside HalideConfig.cmake makes the package more robust, while still respecting the more powerful Halide_ROOT and CMAKE_PREFIX_PATH variables. * Delete undocumented variables in HalideConfig Some of our package's internal variables and macros leak out into user builds. We don't want users to use any of these. We might hit Hyrum's Law here, but I hope not. Users of these variables and macros should seek other means. 23 August 2022, 19:38:51 UTC
ca6319b Some minor top-level CMakeLists.txt reorganization (#6957) * Disables the usage warning when CMAKE_BUILD_TYPE is defined, but explicitly empty. * Overrides C++ standard variables using the cache (CMake 3.21+) * Allows including projects to build our tests, etc. but disables by default via PROJECT_IS_TOP_LEVEL (CMake 3.21+) * Removes misleading distrib target. * Removes deprecated clang-format target (use ./run-clang-format.sh instead) 23 August 2022, 04:07:09 UTC
dc4d1f7 i8 -> u8 bugfix 23 August 2022, 03:59:14 UTC
e2045bf place Expr constants on the stack 23 August 2022, 02:46:59 UTC
37f7514 Python: don't crash for repr(Expr()) (#6962) 23 August 2022, 00:40:17 UTC
671b26d Enable deprecations warnings (#6555) * Enable deprecations warnings We currently disable deprecation warnings inside Halide. This re-enables them there, and also inside add_halide_generator(). 23 August 2022, 00:39:28 UTC
f7a30e0 Fix RPATH for Python wheels on macOS (#6958) 22 August 2022, 18:35:26 UTC
4200349 Merge branch 'rootjalex/x86-optimize' of github.com:halide/Halide into rootjalex/arm-optimize 22 August 2022, 16:29:29 UTC
bbfefd2 Merge branch 'main' of github.com:halide/Halide into rootjalex/x86-optimize 22 August 2022, 16:28:54 UTC
7cb655f fix arm32 shrn codegen 22 August 2022, 16:28:15 UTC
fd3bec3 [HVX] Fix state_var issue (#6894) * fix HVX state_var issue * abort if host is nullptr 22 August 2022, 16:08:34 UTC
4bcd6fa Remove add_python_stub_extension(), adding the functionality to add_halide_generator() instead (#6952) * Remove add_python_aot_extension() rule in CMake Move it into `add_halide_library` instead, as another output option. (add_python_stub_extension will likely be moved as well, in a subsequent PR) * Update README_cmake.md * Skip Python tests when compiling for WASM * PyStubs * Update README_cmake.md * Update Generator.h * Update CMakeLists.txt * Revert "Update CMakeLists.txt" This reverts commit ed5bb00283f0e4fbdbea74adf497d4ff93b0c8d1. * fixes * fixes * Update CMakeLists.txt * fixes * fixes * fixes * Remove LIBRARY DESTINATION * Update CMakeLists.txt * fixup packaging Co-authored-by: Alex Reinking <reinking@google.com> 19 August 2022, 21:17:21 UTC
a1cd71c Build fixes for manylinux2014 (#6953) 19 August 2022, 03:55:04 UTC
4c804eb trigger buildbots 18 August 2022, 00:41:43 UTC
1068403 Remove add_python_aot_extension() rule in CMake (#6949) * Remove add_python_aot_extension() rule in CMake Move it into `add_halide_library` instead, as another output option. (add_python_stub_extension will likely be moved as well, in a subsequent PR) * Update README_cmake.md * Skip Python tests when compiling for WASM 17 August 2022, 23:20:43 UTC
dd5fe8d Two quick build fixes (#6950) * ASLog is linked to autoscheduler MODULES; needs PIC * Out-of-source Python bindings just need libHalide, not imageio * Fixes to setup.py 17 August 2022, 22:17:40 UTC
ab3ba2b clang format 17 August 2022, 19:59:55 UTC
6a368ec fix merge conflicts 17 August 2022, 19:45:13 UTC
00439bd better checking on FP16 for ARM instructions 17 August 2022, 19:35:47 UTC
807d988 Handle saturating_cast in compute_expr_cost() (#6947) 17 August 2022, 19:33:38 UTC
5100ad6 Don't throw an exception from generate_filter_main (#6946) 17 August 2022, 01:06:52 UTC
4f5c53c Add/update Python Readme (#6939) * Add/update Python Readme This moves the Python README to the toplevel and reworks it considerably, adding details and updating various bits. Note that the Python documentation here is still incomplete; this is intended as a prelude to adding documentation for Python Generators in a future PR. 16 August 2022, 22:15:53 UTC
63d563f Export HalidePythonExtensionHelpers.cmake for installs (#6941) * Export HalidePythonExtensionHelpers.cmake for installs * oops * fixes * Fix broken code in target_export_script() * oops #2 * Add WITH_SOABI to stubs as well as AOT * More fixes * Update CMakePresets.json * Update CMakePresets.json 16 August 2022, 21:38:42 UTC
52b91a4 Add minimal useful implementation of extracting and concatenating bits (#6928) * Minimal approach to making Deinterleave correct for Reinterpret * Add minimal useful implementation of extracting and concatenating bits * clang-tidy * More clang-tidy fixes * Add missing error message * Add low-bit-depth noise test * Add test to cmake build * Fix power-of-two check * Remove dead object * Add little-endian comment to reinterpret IR node * Simplify concat_bits of single arg * Add missing second arg * Fix concat_bits call Co-authored-by: Andrew Adams <anadams@adobe.com> 14 August 2022, 17:24:30 UTC
f60a8fb Fix badly-merged CMakePresets.json file (#6936) 12 August 2022, 20:45:37 UTC
5e8f97b Add ASAN support to CMake via toolchain file (#6920) Add ASAN support Co-authored-by: Alex Reinking <reinking@google.com> 11 August 2022, 22:57:54 UTC
b734957 Add build & test presets for release and debug CMake builds (#6934) Also, drive-by rename of 'default' to 'base' to better imply the inheritance 11 August 2022, 19:35:28 UTC
4cdc2a1 Tutorial 10 needs to be skipped for Python when targeting Wasm (just as non-Python does) (#6932) * Tutorial 10 needs to be skipped for Python when targeting Wasm (just as non-Python does) * fixes * Update CMakeLists.txt 11 August 2022, 19:30:57 UTC
43e6a26 Rework internal PYTHONPATH maintenance (#6922) * Rework PYTHONPATH * Move pure-Python file copying logic to build time. * Use TARGET_RUNTIME_DLLS to copy all DLLs instead of just Halide. * Ensure that the last path component for Halide_Python is always `halide` * Simplify __init__.py now that it's copied to build tree * Add helper to de-duplicate PYTHONPATH test logic Fixes #6870 Co-authored-by: Alex Reinking <alex.reinking@gmail.com> Co-authored-by: Alex Reinking <reinking@google.com> 10 August 2022, 22:05:11 UTC
back to top