https://github.com/halide/Halide

sort by:
Revision Author Date Message Commit Date
a344254 Remove __restrict from print_assignment 14 February 2023, 23:35:03 UTC
b467f28 [xtensa] Generate PACKVRNR for i16(i32(i48x) >> wild_i32) (#7349) Generate PACKVRNR for i16(i32(i48x) >> wild_i32) 14 February 2023, 20:44:00 UTC
7ea67a6 Remove unnecessary overrides in Codegen_Xtensa (#7342) 11 February 2023, 02:43:14 UTC
858ee30 Merge branch 'main' into xtensa-codegen 11 February 2023, 02:42:40 UTC
22aed20 Devirtualize the protected compile() methods in Codegen_C (#7341) With the addition of `preprocess_function_body()`, neither of these need to be virtual, and devirtualizing them avoid `hidden overloaded virtual function` warnings in subclasses that don't override them 11 February 2023, 02:42:05 UTC
6c5ca8e Tiny improvements in codegen in C backend (#7337) * Tiny improvements in codegen in C backend (1) Emit `true` or `false` instead of `(bool)(0ull)` etc for bool literals (2) Avoid redundant temporaries in print_cast_expr(), which occur in a small but nonzero number of cases Basically this means that code currently like ``` bool _523 = (bool)(0ull); bool _524 = (bool)(_523); ... foo(_524); ``` becomes ``` foo(false); ``` ...I'm sure this has no output on final object code, but it makes the generated C code less weird to read. * Also avoid extra intermediates for typed nullptr * Also use std::isnan() and std::isinf() * Update CodeGen_C.cpp 11 February 2023, 00:34:41 UTC
3e6a2c6 Remove Xtensa::compile(LoweredFunc), add Xtensa::preprocess_function_body() (#7340) This removes a nice chunk of redundant code (and adds some corner cases that were missing from the Xtensa version). 10 February 2023, 23:56:32 UTC
31e557f Add [SKIP] to correctness_simd_op_check_xtensa 10 February 2023, 21:55:08 UTC
a0ac990 Merge branch 'main' into xtensa-codegen 10 February 2023, 21:29:21 UTC
a6c5be7 Add a hook to Codegen_C::compile() (#7335) At least one subclass of Codegen_C currently has to replicate ~all of the compile(LoweredFunc) method, with the result that it has often gone stale (and still is stale) wrt changes in the base; this adds an optional method to allow some modifications to the function body just before it is printed, to avoid redundant code. 10 February 2023, 21:28:51 UTC
88d40c2 Fix issue in find_package in cross-compilation for no OS (#7282) When using toolchain where Threads libs are not available, which is the case in baremetal target cross-compilation, we were not able to load even HalideHelpers pacakge. Co-authored-by: Alex Reinking <alex.reinking@gmail.com> 10 February 2023, 18:07:56 UTC
76dc02a Merge branch 'main' into xtensa-codegen 10 February 2023, 00:23:11 UTC
35322c3 Fix a subtle uninitialized-memory-read in Buffer::for_each_value() (#7330) * Fix a subtle uninitialized-memory-read in Buffer::for_each_value() When we flattened dimensions in for_each_value_prep(), we would copy from one past the end, meaning the last element contained uninitialized garbage. (This wasn't noticed as an out-of-bounds read because we overallocated in structure in for_each_value_impl()). This garbage stride was later used to advance ptrs in for_each_value_helper()... but only on the final iteration, so even if the ptr was wrong, it didn't matter, as the ptr was never used again. Under certain MSAN configurations, though, the read would be (correctly) flagged as uninitialized. This fixes the MSAN bug, and also (slightly) improves the efficiency by returning the post-flattened number of dimensions, potentially reducing the number of iterations f for_each_value_helper() needed. * Oopsie * Update HalideBuffer.h * Update HalideBuffer.h 10 February 2023, 00:22:10 UTC
8efaae9 [xtensa] A few minor Xtensa fixes (#7333) * Remove unnecessary special-casing of vector-size in camera-pipe * Update camera_pipe_generator.cpp * Remove unnecessary special-casing of vector-size conv_layer 10 February 2023, 00:21:00 UTC
ae3f401 Explicitly remove -D_GLIBCXX_ASSERTIONS from LLVM definitions (#7332) Explicitly remove -D_GLIBCXX_ASSERTIONS from LLVM definitions as a workaround for https://reviews.llvm.org/D142279 09 February 2023, 23:08:37 UTC
4156c5a Allow _Float16 as alias for float16_t in halide_type_of<>() (#7325) (#7326) 09 February 2023, 21:51:22 UTC
734e34a Remove deprecated `HVX_shared_object` feature (#7331) This has been marked 'deprecated' for quite a while, and has no affect on codegen or, well, anything else. Let's remove it. 09 February 2023, 17:59:12 UTC
0f6003e Float16: Remove unused header dependency (#7324) IRMutator.h is not needed for the Float16.h. 08 February 2023, 20:26:31 UTC
c3f3318 Fixes for top-of-tree LLVM (#7329) * Fixes for top-of-tree LLVM * fix * times ten * Update LLVM_Output.cpp 08 February 2023, 20:25:37 UTC
7e93e0a Merge branch 'main' into xtensa-codegen 08 February 2023, 01:14:57 UTC
ddb515a Improve support for Arm baremetal compilation and runtime (#7286) * Improve support for Arm baremetal compilation and runtime - Add Target feature "semihosting" mode for baremetal runtime - Fix error of aligned_alloc() when compiled by Arm GNU toolchain * Modify comments for Target feature semihosting * Add an example app to guide cross-compilation for baremetal target * Update build steps in HelloBaremetal * Fix line-ending * Set CMake variable BAREMETAL in toolchain file 07 February 2023, 18:41:04 UTC
34d256f Make auto scheduler libs available in HalideHelpers package (#7285) * Make auto scheduler libs available in HalideHelpers package find_package(HalideHelpers) allows us to use add_halide_library(). But auto scheduler libs are not available unless they are in Halide-Interfaces.cmake. Note: Those libraries are not actually linked to the target application, but need to be available for add_custom_command call. 07 February 2023, 18:40:22 UTC
0c7722f Add buffer sync methods hannk::Tensor class (#7323) Add few methods for GPU memory interaction. 07 February 2023, 17:37:09 UTC
0b7379f Warn emulated float16 equivalent is generated (#7307) * Warn emulated float16 equivalent is generated 07 February 2023, 17:08:32 UTC
a55a09a Fix Halide cross-compilation (#7073) Use CMAKE_CROSSCOMPILING_EMULATOR for llvm-as and clang imported targets 07 February 2023, 14:17:58 UTC
1ad328a Fix LLVM 17+ build integration on 32-bit systems (#7322) * Fix LLVM 17+ build integration on 32-bit systems Fixes #7319 * add detail and precision to comment 07 February 2023, 01:18:21 UTC
91f3ac0 Fix segfault by nonconstant bound in Adams2019 (#7321) Fix segmentation fault in Adams2019 in case the estimate or bound of Func is set to nonconstant Expr. 06 February 2023, 22:23:47 UTC
01f9e2d Replace some push_backs with emplace_back (#7317) 06 February 2023, 19:05:01 UTC
9ab7a4d Merge branch 'main' into xtensa-codegen 03 February 2023, 21:18:43 UTC
e9aecee Make visit_leaf() public in hannk/ops.h (#7318) * Make visit_leaf() public in hannk/ops.h This makes it easier for downstream code to experiment with adding ops * Update ops.h 03 February 2023, 21:17:47 UTC
0782d80 Make Callable::call_argv_fast public (#7315) * Make Callable::call_argv_fast public * Add rough specification of the calling convention * Fix a typo 01 February 2023, 18:24:01 UTC
234bf6e Merge branch 'main' into xtensa-codegen 31 January 2023, 23:39:51 UTC
beba53a halide_popcount<uint64_t> is broken (#7313) Would not compile for Win32 or any other compiler without __builtin_popcountll available. (How did this get checked in without being tested on MSVC?) 31 January 2023, 21:08:15 UTC
78dc6a0 Pattern for narrow_i48_with_rounding_shift_i16 31 January 2023, 20:05:27 UTC
0a1b5a1 Replace widening_shift_left with signed widening_mul when possible 31 January 2023, 20:02:33 UTC
fae28de Patterns for quad widening add + minor clean-up 31 January 2023, 19:57:47 UTC
6c521e0 Add __attribute__((malloc)) to halide_tcm_malloc 31 January 2023, 18:45:43 UTC
f338197 Do not inline generic gather_load + specialization for gather of native_vector_f32_x2 31 January 2023, 18:44:08 UTC
63175ac Improved halide_xtensa_sat_narrow_i16 31 January 2023, 18:42:21 UTC
75de60a Add widening quad add 31 January 2023, 18:39:37 UTC
e989a3a Add store<native_vector_i16_2x> implementation 31 January 2023, 18:36:17 UTC
1589189 Merge branch 'main' into xtensa-codegen 31 January 2023, 18:34:53 UTC
fe76ab2 Minimal updates to allow Halide building with LLVM17 (#7309) * Minimal updates to allow Halide building with LLVM17 (Opening as draft initially until Buildbots build the new LLVM versions) * trigger buildbots 30 January 2023, 22:01:42 UTC
f52351f [xtensa] added code for running tests and commented failing i48 tests (#7303) * [xtensa] added infrastructure code for running tests * moved google related calls to CL 26 January 2023, 17:21:33 UTC
dd973f4 Improved halide_popcount (#7225) * Improved halide_popcount * reused popcount64 from Utils.cpp in CodeGen_C * Fixed comment for popcount 25 January 2023, 21:40:54 UTC
4605ac6 [xtensa] Minor DMA improvements (#7304) * handle min/max expressions in strides calculations * more robust check for nested loops 25 January 2023, 00:58:08 UTC
23da552 Merge branch 'main' into xtensa-codegen 23 January 2023, 17:46:55 UTC
810bd0b Hoist vector slices using rewrite rules (#7243) * Hoist slices using rewrite rules This lets us add associative variants more easily, which are helpful in the work on staging strided loads. * Don't hoist extract_element shuffles The Shuffle visitor wants to sink them * Add some static asserts * Add explanatory comment on shuffle hoisting * Fix comment * add lanes predicate to slice hoisting * add vector slice hoisting test cases Co-authored-by: Steven Johnson <srj@google.com> Co-authored-by: Alexander <ajroot@stanford.edu> 21 January 2023, 22:08:30 UTC
562d045 Post changes from #7291 to Codegen_Xtensa (#7299) 20 January 2023, 23:00:46 UTC
bafd60f [x86 & wasm] Split up double saturating-narrows from i32 (#7280) * better x86 double sat-cast + add test * fix wasm too + test Co-authored-by: Steven Johnson <srj@google.com> 20 January 2023, 18:03:25 UTC
4023640 Merge branch 'main' into xtensa-codegen 20 January 2023, 17:54:15 UTC
c601e4e Add workaround for the const-or-not user_context issue (#635) (#7291) Add a workaround for the const-or-not user_context issue (https://github.com/halide/Halide/issues/635) 20 January 2023, 17:43:56 UTC
2cc0468 Fix issue in add_halide_runtime in cross-compilation (#7284) * Fix issue in add_halide_runtime in cross-compilation add_halide_runtime() tries to build generator executable, but it fails if we are working with cross-compiler toolchain. By using existing generator set as "FROM", we can work around this. 20 January 2023, 17:39:41 UTC
d44e99d Fix error of add_halide_generator in cross-compilation (#7283) In case the project name is CamelCase, add_halide_generator() was not able to find the generator package, because CMake searches <name>Config.cmake or <lower-case-name>-config.cmake 20 January 2023, 13:12:30 UTC
147ff48 Remove dependency on platform threads library (#7297) * Refactor internal ThreadPool.h into halide_thread_pool.h tool * Drop dependency of libHalide on threads library * Remove other redundant uses of Threads::Threads * Update CMake documentation. 20 January 2023, 12:54:34 UTC
314b2fd [HVX] Fix EliminateInterleaves (#7279) * fix EliminateInterleaves Co-authored-by: Steven Johnson <srj@google.com> 20 January 2023, 00:35:14 UTC
c9f3602 Remove the watchdog timer from generator_main(). It was intended to k… (#7295) Remove the watchdog timer from generator_main(). It was intended to kill pathologically slow builds, but in the environment it was added for (Google build servers), it ended up being redundant to existing mechanisms, and removing it allows us to remove a dependency on threading libraries in libHalide. 19 January 2023, 23:48:26 UTC
51a4f6c Emit prototypes for destructor functions in C Backend (#7296) We gathered up the destructors, but only emitted the prototypes if there was at least one non-C++ function declaration needed -- so if you built with cpp_name_mangling enabled, you might omit the right prototype. Fixed and added the right flag to a Generator test to tickle this behavior. 19 January 2023, 23:36:47 UTC
e8e1481 Drop support for MIPS (#7287) (#7289) * Drop support for MIPS (#7287) * Update Target.cpp 18 January 2023, 21:56:14 UTC
2e9ae6a Merge branch 'main' into xtensa-codegen 18 January 2023, 18:51:45 UTC
511a04e [xtensa] set is_tcm to False when working with buffer (#7277) 18 January 2023, 17:49:20 UTC
8efaaed [xtensa] Extend fp16 support for Xtensa (#7288) Extend fp16 support for Xtensa 18 January 2023, 01:19:50 UTC
888c41c Add CMake support for C++ backend in test/generator (#7274) * Add support for C++ backend in test/generator When the CMake rules were rewritten a while back, the support for building/testing generators with the C++ backend (instead of the standard LLVM, etc) got lost. This adds it back in. Also made some drive-by fixes to the Makefile to enable some tests there that work correctly now. Also made a drive-by fix in in Codegen_C to fix allocation nodes that were just wrappers around buffer_get_host -- this prevented the cleanup_on_error test from building with the C++ backend. 18 January 2023, 00:47:52 UTC
104f3d1 Merge branch 'main' into xtensa-codegen 10 January 2023, 19:24:24 UTC
0d43318 Optimize Module::compile() for some edge cases (#7269) * Optimize Module::compile() for some edge cases Avoid redundant `compile_to_buffer()` calls for output requests that can't possibly ever need them. * Avoid mutation 10 January 2023, 19:23:58 UTC
a8d88bb Use ::aligned_alloc() instead of std::aligned_alloc() in HalideBuffer.h (#7268) 10 January 2023, 17:51:38 UTC
73a3f16 Pass _ucon to halide_error for DMA check (#7267) Passing __user_context doesn't always get the constness right; _ucon does and is terser 09 January 2023, 22:21:54 UTC
eea7696 Update README_python.md (#7266) 09 January 2023, 17:58:04 UTC
c070bb8 Update change following LLVM WASM change f841ad30d77eeb4c51663e68efefdb734c7a3d07 (#7264) * Update change following LLVM WASM change https://github.com/llvm/llvm-project/commit/f841ad30d77eeb4c51663e68efefdb734c7a3d07 * Update checks conditional on LLVM version. 06 January 2023, 00:00:34 UTC
e87e1e8 Avoid global variables in xtensa_dma & better clean-up on failure 05 January 2023, 21:34:00 UTC
d6f1e5d Merge branch 'main' into xtensa-codegen 05 January 2023, 21:23:15 UTC
4b74049 Inline into extern function args during bounds inference (#7261) * Inline into extern function args during bounds inference Fixes #7260 * Run CSE once at the end * Actually recursively inline * clang-tidy * trigger buildbots * Make test invariant to the number of times the warning is printed as long as it's at least once Co-authored-by: Steven Johnson <srj@google.com> 05 January 2023, 21:12:50 UTC
c35aa11 Add missing `cache.clear()` call at end of functions (#7259) Fix was made in Codegen_C.cpp a while back; the cache must be clear and end-of-func to avoid trying to share assignments between do-par-for lambdas. 29 December 2022, 03:09:22 UTC
598c104 Merge branch 'main' into xtensa-codegen 28 December 2022, 17:32:41 UTC
fea1299 Fix #7255 for Xtensa, too (#7257) 28 December 2022, 17:31:40 UTC
04bb986 Conditional allocations shouldn't fail for size=0 in C++ backend (#7255) (#7256) * Conditional allocations shouldn't fail for size=0 in C++ backend (#7255) Allocations can be conditional; if the condition evaluates to false, we end up calling `halide_malloc(0)` (or `halide_tcm_malloc(0)` in the xtensa branch). Since it's legal via spec for `malloc(0)` to return nullptr, we need to be cautious here: if we are compiling with assertions enabled, *and* have a malloc() (etc) implementation that returns nullptr for alloc(0), we need to skip the assertion check, since we know the result won't be used. Note: a similar check will be inserted in the xtensa branch separately. Note 2: LLVM backend already has this check via Codegen_Posix.cpp * Update CodeGen_C.cpp 28 December 2022, 17:31:01 UTC
470da09 Merge branch 'main' into xtensa-codegen 28 December 2022, 02:35:20 UTC
ade8b56 Remove deprecated halide_target_feature_disable_llvm_loop_opt (#7247) * Remove deprecated halide_target_feature_disable_llvm_loop_opt Was deprecated in Halide 15; let's remove in Halide 16 * trigger buildbots * trigger buildbots * Update CodeGen_LLVM.cpp 20 December 2022, 20:05:19 UTC
7bc3baa Merge branch 'main' into xtensa-codegen 16 December 2022, 17:57:22 UTC
10345d4 Explicitly stage strided loads (#7230) * Add a pass to do explicit densification of strided loads * densify more types of strided load * Reorder downsample in local laplacian for slightly better performance * Move allocation padding into the IR. Still WIP. * Simplify concat_bits handling * Use evidence from parent scopes to densify * Disallow padding allocations with custom new expressions * Add test for parent scopes * Remove debugging prints. Avoid nested ramps. * Avoid parent scope loops * Update cmakefiles * Fix for large_buffers * Pad stack allocations too * Restore vld2/3/4 generation on non-Apple ARM chips * Appease clang-format and clang-tidy * Silence clang-tidy * Better comments * Comment improvements * Nuke code that reads out of bounds * Fix stage_strided_loads test * Change strategy for loads from external buffers Some backends don't like non-power-of-two vectors. Do two overlapping half-sized loads and shuffle instead of one funny-sized load. * Add explanatory comment to ARM backend * Fix cpp backend shuffling * Fix missing msan annotations * Magnify heap cost effect in stack_vs_heap performance test * Address review comments * clang-tidy * Fix for when same load node occurs in two different allocate nodes 16 December 2022, 17:56:08 UTC
382f813 Fix "may be used uninitialized" warnings in Codegen_C::print_scalarized_expr() (#7244) 16 December 2022, 17:54:21 UTC
d0cf547 Merge branch 'main' into xtensa-codegen 15 December 2022, 01:25:42 UTC
8afb0b8 Skip the second loop var if it's loop body is more than another for loop 14 December 2022, 18:05:20 UTC
da6746e correctness/exception.cpp needs to check HALIDE_WITH_EXCEPTIONS (fixes #7240) (#7241) correctness/exception.cpp needs to check HALIDE_WITH_EXCEPTIONS 14 December 2022, 05:29:45 UTC
87569c0 [xtensa] DMA support improvements. (#7237) * [xtensa] DMA support improvements. This includes multiple related changes: * all transactions are 2D. * Each buffer will use a separate DMA channel. * For the case when destination is an output buffer, we can delay the wait for completion until the beginning of it's producer. * Fix review comments * Handle an error in halide_init_dma * Address review comments 14 December 2022, 03:06:25 UTC
d0f0027 [xtensa] Add xtensa_io.cpp (#7233) * [xtensa] Add xtensa_io.cpp This is a better option than posix_io.cpp on Xtensa * Update xtensa_io.cpp 13 December 2022, 20:52:30 UTC
128be06 Merge branch 'main' into xtensa-codegen 13 December 2022, 18:04:46 UTC
1a4a469 Fix some sources of signed integer overflow in the compiler (#7231) * Fix some sources of signed integer overflow in the compiler Also, use compiler intrinsics when possible to handle overflow, as it generates faster code. * Fix msvc macro * Must use result * Actually perform the requested operation 13 December 2022, 16:11:54 UTC
33f57b5 Merge branch 'main' into xtensa-codegen 12 December 2022, 20:55:18 UTC
533e6e5 Remove rogue string suffix in simd_op_check_arm.cpp (#7227) * Remove rogue string suffix in simd_op_check_arm.cpp Interestingly, it compiles here, but in some compilers it will fail with "unexpected token". * Update simd_op_check_arm.cpp 12 December 2022, 20:54:46 UTC
c4d1781 Reorder convert<> function 12 December 2022, 18:29:38 UTC
145c2b6 Merge branch 'main' into xtensa-codegen 12 December 2022, 17:01:46 UTC
6ecdcbd Tighten alignment promises for halide_malloc() (#7222) This makes a couple of changes to the behavior/implementation of `halide_malloc()`: * Currently, halide_malloc must return a pointer aligned to the maximum meaningful alignment for the platform for the purpose of vector loads and stores. This PR also adds the requirement that the memory returned must be legal to access in an integral multple of alignment >= the requested size (in other words: you should be able to do vector load/stores "off the end" without causing any faults). * Currently, the `halide_malloc_alignment()` function is used to determine the default alignment; this cannot be overridden by user code (well, it can be, but the override will have no useful effect). It is intended to be "internal only" but is used in at least one place outside the runtime (apps/hannk). This change removes the call entirely, in favor of a call that is harder to access from outside the runtime and much less likely for end users to attempt to call. (It also changes apps/hannk to stop using it.) 11 December 2022, 18:05:55 UTC
df2430e Add missing halide_xtensa_deinterleave_odd_u16 09 December 2022, 19:40:13 UTC
43966f5 [xtensa] Fixed xtensa simd correctness testing (#7214) * Commented failing tests out * [xtensa] fixed most of failing tests * [xtensa] added sanitized op name check to simd_op_check_xtensa * [xtensa] Made `serialize` to be a pure function, fixed IVP_MULN_2X32 test 09 December 2022, 18:54:09 UTC
9f3c4b2 [xtensa] Added initial support for float16_t (#7198) * [xtensa] Added initial support for float16_t * Added SELECT support for float16_t * [xtensa] added conversions between float16_t and int32_t 09 December 2022, 18:52:58 UTC
f7b3fec [xtensa] Also special-case WEAK_INLINE for xtensa (#7226) * [xtensa] Also special-case WEAK_INLINE for xtensa * Update runtime_internal.h * Also use the version of `halide_malloc_alignment()` from runtime_internal.h instead of an extern decl, so we can inline it 09 December 2022, 18:43:28 UTC
5afd708 Merge branch 'main' into xtensa-codegen 09 December 2022, 17:34:22 UTC
16421a7 Revise simd_op_check tests to ignore HL_TARGET (#7207) (#7216) * Revise simd_op_check tests to ignore HL_TARGET (#7207) The simd_op_check tests have historically only run using the value of HL_TARGET, which mean that the coverage they had was low (since HL_TARGET is only set to values that are runnable on at least one buildbot). This change completely disconnects these tests from HL_TARGET; instead, each test now tests for a range of targets appropriate to the architecture being tested. On all platforms, they still compile to assembly and verify that the correct instructions are generated; additionally, if the host platform can JIT for the given target, it verifies that the results are as expected. * Update simd_op_check_riscv.cpp * Update simd_op_check_x86.cpp * Update simd_op_check_x86.cpp * Update simd_op_check_arm.cpp * Add more features that must match; re-enable the bfloat instructions * Update simd_op_check_x86.cpp * Update simd_op_check_riscv.cpp * trigger buildbots * Fix simd_op_check_wasm 09 December 2022, 17:21:30 UTC
ba31688 Increase __clang_major__ check in Float16.h to 16 (#7224) 09 December 2022, 01:22:54 UTC
back to top