1f4e29f | Volodymyr Kysenko | 25 January 2023, 00:31:13 UTC | [xtensa] Minor DMA improvements * handle min/max expressions in strides calculations * more robust check for nested loops | 25 January 2023, 00:31:13 UTC |
23da552 | Steven Johnson | 23 January 2023, 17:46:55 UTC | Merge branch 'main' into xtensa-codegen | 23 January 2023, 17:46:55 UTC |
810bd0b | Andrew Adams | 21 January 2023, 22:08:30 UTC | 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 | Steven Johnson | 20 January 2023, 23:00:46 UTC | Post changes from #7291 to Codegen_Xtensa (#7299) | 20 January 2023, 23:00:46 UTC |
bafd60f | Alexander Root | 20 January 2023, 18:03:25 UTC | [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 | Steven Johnson | 20 January 2023, 17:54:15 UTC | Merge branch 'main' into xtensa-codegen | 20 January 2023, 17:54:15 UTC |
c601e4e | Steven Johnson | 20 January 2023, 17:43:56 UTC | 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 | Steve Suzuki | 20 January 2023, 17:39:41 UTC | 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 | Steve Suzuki | 20 January 2023, 13:12:30 UTC | 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 | Alex Reinking | 20 January 2023, 12:54:34 UTC | 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 | Alexander Root | 20 January 2023, 00:35:14 UTC | [HVX] Fix EliminateInterleaves (#7279) * fix EliminateInterleaves Co-authored-by: Steven Johnson <srj@google.com> | 20 January 2023, 00:35:14 UTC |
c9f3602 | Steven Johnson | 19 January 2023, 23:48:26 UTC | 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 | Steven Johnson | 19 January 2023, 23:36:47 UTC | 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 | Steven Johnson | 18 January 2023, 21:56:14 UTC | Drop support for MIPS (#7287) (#7289) * Drop support for MIPS (#7287) * Update Target.cpp | 18 January 2023, 21:56:14 UTC |
2e9ae6a | Steven Johnson | 18 January 2023, 18:51:45 UTC | Merge branch 'main' into xtensa-codegen | 18 January 2023, 18:51:45 UTC |
511a04e | Mikhail Usvyatsov | 18 January 2023, 17:49:20 UTC | [xtensa] set is_tcm to False when working with buffer (#7277) | 18 January 2023, 17:49:20 UTC |
8efaaed | Volodymyr Kysenko | 18 January 2023, 01:19:50 UTC | [xtensa] Extend fp16 support for Xtensa (#7288) Extend fp16 support for Xtensa | 18 January 2023, 01:19:50 UTC |
888c41c | Steven Johnson | 18 January 2023, 00:47:52 UTC | 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 | Steven Johnson | 10 January 2023, 19:24:24 UTC | Merge branch 'main' into xtensa-codegen | 10 January 2023, 19:24:24 UTC |
0d43318 | Steven Johnson | 10 January 2023, 19:23:58 UTC | 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 | Steven Johnson | 10 January 2023, 17:51:38 UTC | Use ::aligned_alloc() instead of std::aligned_alloc() in HalideBuffer.h (#7268) | 10 January 2023, 17:51:38 UTC |
73a3f16 | Steven Johnson | 09 January 2023, 22:21:54 UTC | 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 | Steven Johnson | 09 January 2023, 17:58:04 UTC | Update README_python.md (#7266) | 09 January 2023, 17:58:04 UTC |
c070bb8 | Alina Sbirlea | 06 January 2023, 00:00:34 UTC | 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 | Volodymyr Kysenko | 05 January 2023, 21:34:00 UTC | Avoid global variables in xtensa_dma & better clean-up on failure | 05 January 2023, 21:34:00 UTC |
d6f1e5d | Volodymyr Kysenko | 05 January 2023, 21:23:15 UTC | Merge branch 'main' into xtensa-codegen | 05 January 2023, 21:23:15 UTC |
4b74049 | Andrew Adams | 05 January 2023, 21:12:50 UTC | 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 | Steven Johnson | 29 December 2022, 03:09:22 UTC | 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 | Steven Johnson | 28 December 2022, 17:32:41 UTC | Merge branch 'main' into xtensa-codegen | 28 December 2022, 17:32:41 UTC |
fea1299 | Steven Johnson | 28 December 2022, 17:31:40 UTC | Fix #7255 for Xtensa, too (#7257) | 28 December 2022, 17:31:40 UTC |
04bb986 | Steven Johnson | 28 December 2022, 17:31:01 UTC | 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 | Steven Johnson | 28 December 2022, 02:35:20 UTC | Merge branch 'main' into xtensa-codegen | 28 December 2022, 02:35:20 UTC |
ade8b56 | Steven Johnson | 20 December 2022, 20:05:19 UTC | 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 | Steven Johnson | 16 December 2022, 17:57:22 UTC | Merge branch 'main' into xtensa-codegen | 16 December 2022, 17:57:22 UTC |
10345d4 | Andrew Adams | 16 December 2022, 17:56:08 UTC | 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 | Steven Johnson | 16 December 2022, 17:54:21 UTC | Fix "may be used uninitialized" warnings in Codegen_C::print_scalarized_expr() (#7244) | 16 December 2022, 17:54:21 UTC |
d0cf547 | Steven Johnson | 15 December 2022, 01:25:42 UTC | Merge branch 'main' into xtensa-codegen | 15 December 2022, 01:25:42 UTC |
8afb0b8 | Volodymyr Kysenko | 14 December 2022, 18:05:20 UTC | Skip the second loop var if it's loop body is more than another for loop | 14 December 2022, 18:05:20 UTC |
da6746e | Steven Johnson | 14 December 2022, 05:29:45 UTC | 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 | Volodymyr Kysenko | 14 December 2022, 03:06:25 UTC | [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 | Steven Johnson | 13 December 2022, 20:52:30 UTC | [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 | Steven Johnson | 13 December 2022, 18:04:46 UTC | Merge branch 'main' into xtensa-codegen | 13 December 2022, 18:04:46 UTC |
1a4a469 | Andrew Adams | 13 December 2022, 16:11:54 UTC | 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 | Steven Johnson | 12 December 2022, 20:55:18 UTC | Merge branch 'main' into xtensa-codegen | 12 December 2022, 20:55:18 UTC |
533e6e5 | Steven Johnson | 12 December 2022, 20:54:46 UTC | 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 | Volodymyr Kysenko | 12 December 2022, 18:29:38 UTC | Reorder convert<> function | 12 December 2022, 18:29:38 UTC |
145c2b6 | Steven Johnson | 12 December 2022, 17:01:46 UTC | Merge branch 'main' into xtensa-codegen | 12 December 2022, 17:01:46 UTC |
6ecdcbd | Steven Johnson | 11 December 2022, 18:05:55 UTC | 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 | Volodymyr Kysenko | 09 December 2022, 19:40:13 UTC | Add missing halide_xtensa_deinterleave_odd_u16 | 09 December 2022, 19:40:13 UTC |
43966f5 | Mikhail Usvyatsov | 09 December 2022, 18:54:09 UTC | [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 | Mikhail Usvyatsov | 09 December 2022, 18:52:58 UTC | [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 | Steven Johnson | 09 December 2022, 18:43:28 UTC | [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 | Steven Johnson | 09 December 2022, 17:34:22 UTC | Merge branch 'main' into xtensa-codegen | 09 December 2022, 17:34:22 UTC |
16421a7 | Steven Johnson | 09 December 2022, 17:21:30 UTC | 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 | Steven Johnson | 09 December 2022, 01:22:54 UTC | Increase __clang_major__ check in Float16.h to 16 (#7224) | 09 December 2022, 01:22:54 UTC |
88b5063 | Steven Johnson | 09 December 2022, 00:30:10 UTC | Merge branch 'main' into xtensa-codegen | 09 December 2022, 00:30:10 UTC |
066559b | Steven Johnson | 08 December 2022, 23:35:01 UTC | Remove check_jit_user_context() from V8 bindings (#7220) Obsolete code from early V8 work, it can trigger inappropriately in some corner-case scenarios. Remove it entirely to avoid false errors. | 08 December 2022, 23:35:01 UTC |
480bcbd | Steven Johnson | 08 December 2022, 23:30:25 UTC | [xtensa] Remove xtensa_allocator.cpp (#7221) It's functionally identical to posix_allocator.cpp and the WEAK issue should be resolved by now. | 08 December 2022, 23:30:25 UTC |
4403d48 | Steven Johnson | 08 December 2022, 04:34:47 UTC | Merge branch 'main' into xtensa-codegen | 08 December 2022, 04:34:47 UTC |
8fa8221 | Steven Johnson | 08 December 2022, 04:34:13 UTC | Fix bonehead version-checking test in HalideBuffer.h for Apple (#7218) | 08 December 2022, 04:34:13 UTC |
e8615bb | Steven Johnson | 08 December 2022, 01:22:38 UTC | clang-tidy: add [[maybe-unused]] to the DECLARE_NO_INITMOD stubs. (#7215) | 08 December 2022, 01:22:38 UTC |
ba4a7f6 | Steven Johnson | 07 December 2022, 17:32:01 UTC | Merge branch 'main' into xtensa-codegen | 07 December 2022, 17:32:01 UTC |
a7fa32e | Steven Johnson | 07 December 2022, 17:31:01 UTC | Use aligned_alloc() as default allocator for HalideBuffer.h on most platforms (#7190) Use aligned_alloc() as default allocator for HalideBuffer.h on most platforms (See also https://github.com/halide/Halide/pull/7189) Modify H::R::Buffer to default to using `aligned_alloc()` instead of `malloc()`, except: - If user code passes a non-null `allocate_fn` or `deallocate_fn`, we always use those (and/or malloc/free) - If the code is compiling under MSVC, never use `aligned_alloc` (Windows doesn't support it) - If HALIDE_RUNTIME_BUFFER_USE_ALIGNED_ALLOC is defined to be 0, never use `aligned_alloc` (this is to allow for usage on e.g. older Android and OSX versions which don't provide `aligned_alloc()` in the stdlib, regardless of C++ versions.) Also, as with #7189, this ensures that the allocated space has the start of the host data as 128-aligned, and also now ensures that the size allocated 128-aligned (rounding up as needed). | 07 December 2022, 17:31:01 UTC |
8ce1212 | Steven Johnson | 07 December 2022, 17:29:19 UTC | Fix bitrot in PowerPC testing (#7211) * Fix bitrot in PowerPC testing (See #7208) - DataLayout was wrong (and has been for a long time) - simd_op_check_powerpc had errors. Some were easy to fix; the rest I commented out with a TODO since this backend doesn't appear to be in active use. (Want to fix this in preparation for fixing #7207) * Move x86 absd tests to the right place Co-authored-by: Andrew Adams <andrew.b.adams@gmail.com> | 07 December 2022, 17:29:19 UTC |
35020c5 | Zalman Stern | 07 December 2022, 07:15:46 UTC | Extend LLVM IR type mangling to handle scalars. (#7212) Extend LLVM IR type mangling to handle scalars and use this in vector predication intrinsic codegen. Fixes an error denerating vector predicated strided stores. | 07 December 2022, 07:15:46 UTC |
d4b4c50 | Zalman Stern | 07 December 2022, 07:15:10 UTC | Add RISC V zvl flag for LLVM version 16 or greater. (#7209) | 07 December 2022, 07:15:10 UTC |
e0d1e15 | Zalman Stern | 07 December 2022, 00:58:28 UTC | Fix issue with vector predicated comparison and select instructions. (#7205) Fix invalid LLVM IR issues with vector predicated comparison and select instructions. Add start of RISC V simd_op_check test. | 07 December 2022, 00:58:28 UTC |
59f5412 | Zalman Stern | 06 December 2022, 22:57:24 UTC | Add bridging for clang _Float16 type. (#7201) Add type bridging between Halide::float16_t and _Float16 if the compiler supports the latter. Testing is done using clang specific logic and may need to be extended for other compilers. I chose not to add support for __fp16 and __bf16 right now as __fp16 is less useful in being storage only and __bf16 also only supports a subset of operations and was running into undefined symbols during compilation that did not look promising. Co-authored-by: Steven Johnson <srj@google.com> | 06 December 2022, 22:57:24 UTC |
90459b0 | Steven Johnson | 06 December 2022, 00:53:05 UTC | Revert "Fix for top-of-tree LLVM" (#7200) Revert "Fix for top-of-tree LLVM (#7194)" This reverts commit a9ea9b565018774e52bb4028cbc91e14cb86959e. | 06 December 2022, 00:53:05 UTC |
c25b7e2 | Steven Johnson | 03 December 2022, 00:02:17 UTC | Merge branch 'main' into xtensa-codegen | 03 December 2022, 00:02:17 UTC |
dbdfedf | Steven Johnson | 03 December 2022, 00:02:12 UTC | Merge branch 'xtensa-codegen' of https://github.com/halide/Halide into xtensa-codegen | 03 December 2022, 00:02:12 UTC |
345cf18 | Steven Johnson | 02 December 2022, 20:48:57 UTC | Don't attempt to use makecontext()/swapcontext() on Android (#7196) Despite being 'posixy', it doesn't actually implement these calls. | 02 December 2022, 20:48:57 UTC |
c38cb5d | Mikhail Usvyatsov | 02 December 2022, 17:17:45 UTC | [xtensa] Added add_platform_headers hook in CodeGen_C and relocated the common Xtensa code there. (#7186) * Added add_platform_headers hook in CodeGen_C and relocated the common Xtensa code there. * Fixed spelling mistake in the comment and improved the function naming to add_platform_prologue | 02 December 2022, 17:17:45 UTC |
80b9a1f | Mikhail Usvyatsov | 02 December 2022, 01:04:16 UTC | [xtensa] Added missing types to CodeGen_Xtensa.cpp and fixed the issues with 0_off_3 functions. (#7184) * Added missing types to CodeGen_Xtensa.cpp and fixed the issues with 0_off_3 functions * improved is_extract_0_of_3 variable naming | 02 December 2022, 01:04:16 UTC |
d072099 | Mikhail Usvyatsov | 02 December 2022, 01:03:34 UTC | [xtensa] Improved gather_load with IVP_GATHER (#7187) * Improved gather_load with IVP_GATHER * Improved gather_load specialization | 02 December 2022, 01:03:34 UTC |
a9ea9b5 | Steven Johnson | 02 December 2022, 00:17:48 UTC | Fix for top-of-tree LLVM (#7194) | 02 December 2022, 00:17:48 UTC |
02a096b | Steven Johnson | 01 December 2022, 19:15:09 UTC | Merge branch 'main' into xtensa-codegen | 01 December 2022, 19:15:09 UTC |
43911f4 | Steven Johnson | 01 December 2022, 18:20:03 UTC | Add a -v flag to generator_main() (#7193) This is a simple thing that just logs the path to all generated file(s) to stdout if `-v=1` is specified. It's intended for people running Generators directly from the commandline, and is intended as a more user-friendly alternative to HL_DEBUG_CODEGEN=1. No makefiles, etc specify it at present, but I anticipate using it in some tooling in the future. Example usage: ``` $ resize_image_bilinear.generator_binary -v 1 -o /tmp -g resize_image_bilinear -n resize_image_bilinear_uint16 -f resize_image_bilinear_uint16 -e assembly,c_header,llvm_assembly,registration,static_library,stmt 'target=arm-64-android' 'input.type=uint16' 'output.type=uint16' Generated file: /tmp/resize_image_bilinear_uint16.s Generated file: /tmp/resize_image_bilinear_uint16.h Generated file: /tmp/resize_image_bilinear_uint16.ll Generated file: /tmp/resize_image_bilinear_uint16.registration.cpp Generated file: /tmp/resize_image_bilinear_uint16.a Generated file: /tmp/resize_image_bilinear_uint16.stmt ``` | 01 December 2022, 18:20:03 UTC |
5a8c324 | Steven Johnson | 30 November 2022, 01:44:30 UTC | Fix metadata generation for multitarget Generators (#7181) Fix metadata generation for multitarget Generators We had a mechanism in place to ensure that Outputs that got renamed during lowering still emitted the proper names in the metadata... but this didn't work reliably for Multitarget generation. Now it does. | 30 November 2022, 01:44:30 UTC |
46e6831 | Steven Johnson | 29 November 2022, 21:48:44 UTC | [xtensa] Add support for `extract_n_of-4` for float32 (#7185) | 29 November 2022, 21:48:44 UTC |
33b51e3 | Steven Johnson | 29 November 2022, 19:19:44 UTC | Merge branch 'main' into xtensa-codegen | 29 November 2022, 19:19:44 UTC |
caf4b71 | Steven Johnson | 29 November 2022, 17:45:49 UTC | Disable unreachable-code clang-tidy warnings (#7182) Some configurations of clang-tidy will (correctly) complain that the code inside the `if` clauses here will never be executed, since it ends up as something like `if (strcmp("foo", "foo"))`... but for testing purposes, we want to keep it, for obvious reasons. It's hard to construct a string-compare here as constexpr, so I'm just going to NOLINT it. Also changed the `count_buffers()` check to a static_assert for simplicity. | 29 November 2022, 17:45:49 UTC |
c99e61f | Steven Johnson | 28 November 2022, 22:23:53 UTC | Merge branch 'main' into xtensa-codegen | 28 November 2022, 22:23:53 UTC |
2cfc315 | Steven Johnson | 28 November 2022, 22:11:35 UTC | Tweak the import paths in Python apps & tests (#7179) * Tweak the import paths in Python apps & tests This change makes it a bit easier for me to transform the import paths when merging into Google: we can't set PYTHONPATH, and calling `sys.path.append()` is frowned upon. This should have no effect on the GitHub repo but will make my life easier downstream. * More tweaks * force builds * Update Generator.cpp | 28 November 2022, 22:11:35 UTC |
73c61c3 | Steven Johnson | 28 November 2022, 21:52:51 UTC | Add optional "function_info" header output (#7170) Add optional "function_info" header output At first glance, this looks like a subset of what is already provided by the `_metadata()` functionality: describing the argument attributes of an AOT-generated Halide function. However, _metadata() is suboptimal for some use cases: Because it's expressed as ordinary data, we can only process it at runtime; the new fuctionality is expressed as a `constexpr` data structure, meaning we can process it at *compile* time if we so choose. (This is quite useful for producing automatic call wrappers, etc). At first I considered adding this to the normal `.h` file, but moving it into a new file is cleaner in a few ways: - It maintains the 'C-only' nature of the existing .h files (adding this would have imposed a C++17-only section on them) - Splitting into a new file means no existing users are affected by this change at all Note also that this is deliberately not replicating all of the existing `_metadata()` functionality (it's just the argument signature, but no e.g. estimates or default values, etc). This approach means that it is probably more sensible to add several separate constexpr "getters" to this file, rather than trying to mash everything together into one clumsy structure. (With _metadata(), there was an incentive to keep the surface area of the API small, even if that meant combining somewhat-unrelated concerns; there is no such incentive here.) | 28 November 2022, 21:52:51 UTC |
3ff9e66 | Dmitry Kurtaev | 28 November 2022, 20:00:58 UTC | Use n32:64 in RISC-V data layout (#7175) * Use n32:64 in RISC-V data layout * Remove unused LLVM header | 28 November 2022, 20:00:58 UTC |
81c79d5 | Steven Johnson | 28 November 2022, 19:12:11 UTC | README_python.md should be installed with other READMEs (#7177) | 28 November 2022, 19:12:11 UTC |
8be767a | Steven Johnson | 18 November 2022, 18:53:10 UTC | Merge branch 'main' into xtensa-codegen | 18 November 2022, 18:53:10 UTC |
270c24a | Dmitry Kurtaev | 18 November 2022, 18:52:51 UTC | Migrate from MCJIT to ORC JIT (#7166) * Migrate from MCJIT to ORC JIT | 18 November 2022, 18:52:51 UTC |
7b0fdf5 | Steven Johnson | 18 November 2022, 17:08:56 UTC | Add fopen() bottleneck to runtime (#7171) * Add fopen() bottleneck to runtime Prefer using `fopen64()` on Linux systems. Also, drive-by sorting of the list of initmods that was supposed to be kept sorted. * fopen_32 -> fopen, fopen_64 -> fopen_lfs | 18 November 2022, 17:08:56 UTC |
0453cad | Steven Johnson | 17 November 2022, 18:46:09 UTC | Merge branch 'main' into xtensa-codegen | 17 November 2022, 18:46:09 UTC |
be055a8 | Andrew Adams | 16 November 2022, 01:02:37 UTC | Slightly improve error message for non-integer RDom min/extent (#7151) Improve error message for non-integer RDom min/extent Co-authored-by: Steven Johnson <srj@google.com> | 16 November 2022, 01:02:37 UTC |
e4423c5 | Steven Johnson | 11 November 2022, 22:08:37 UTC | Upgrade Poor Man's Profile + add predefined_vectors | 11 November 2022, 22:08:37 UTC |
41fe8b3 | Zalman Stern | 11 November 2022, 03:32:07 UTC | Factor simd_op_check into separate files by architecture. (#7163) | 11 November 2022, 03:32:07 UTC |
9916b4e | Steven Johnson | 08 November 2022, 16:54:25 UTC | Add `bfloat` support to `halide_type_to_string()` (#7154) | 08 November 2022, 16:54:25 UTC |
58421be | Steven Johnson | 08 November 2022, 16:54:15 UTC | Call cache.clear between internal functions in CG_C (#7155) We didn't call cache.clear() between internal functions in the C backend, so the cache could try to re-use something declared in a previous (internal, closure) function and would fail to compile. Easy fix. (I'm surprised we haven't seen this fail before now.) | 08 November 2022, 16:54:15 UTC |
c6815b0 | Steven Johnson | 08 November 2022, 16:53:43 UTC | C Backend should call halide_buffer_to_string() (#7156) Just assume that this is present and call it for stringify() on buffers in the C backend. (If it's missing, the user will be expected to provide an implementation, as is usual for runtime with the C backend.) | 08 November 2022, 16:53:43 UTC |
102c059 | Andrew Adams | 08 November 2022, 00:38:44 UTC | Fix readnone attribute for llvm 16 (#7152) * Fix readnone attribute for llvm 16 The readnone flag was changed to memory(none) when applied to functions. llvm-as dynamically upgrades readnone applied to functions, so our .ll is fine for now, but there were places in the compiler we were manually sticking 'readnone' on a function. Also did a driveby makefile fix to remove some vestigial wasm stuff that was throwing errors with newer versions of llvm-config * Revert formatting changes | 08 November 2022, 00:38:44 UTC |
8f8edeb | Steven Johnson | 03 November 2022, 20:37:51 UTC | Don't use TF_LITE_KERNEL_LOG in apps/hannk (#7147) TF_LITE_KERNEL_LOG was intended for TFLite Micro but usage leaked out into example code; we should use ReportError instead. | 03 November 2022, 20:37:51 UTC |
1230042 | Steven Johnson | 02 November 2022, 00:10:51 UTC | Fix Python wheel-building (#7144) Various bits of code rearrangement had invalidated some of the build scripts for Python wheels for our bindings; this fixes that, and also subtracts some other irrelevant stuff that was getting included (e.g. the stub directory). Also updated the "long description" to use README_python.md rather than README.md. | 02 November 2022, 00:10:51 UTC |