ee2e5df | Steven Johnson | 15 December 2020, 17:57:00 UTC | Upgrade WABT version to 1.0.20 (#5557) | 15 December 2020, 17:57:00 UTC |
d37b995 | Alex Reinking | 14 December 2020, 23:04:36 UTC | Better document how LLVM_DIR works. (#5560) | 14 December 2020, 23:04:36 UTC |
9fea59f | aankit-ca | 14 December 2020, 17:01:27 UTC | Bug fix for lossless_cast with minor additions (#5459) * Bug fix for lossless_cast with minor additions The bug can seen for types where lossless_cast type can represent cast->value.type() but not cast->type. For eg: lossless_cast(UInt(16), cast(Int(8), Variable::make(UInt(16), e))) returns (uint16)e which is incorrect. The patch also adds lossless_cast of Mod and Ramp expressions. * Handle Mod for negative numbers in lossless_cast. * Add lossless_cast test for VectorReduce. * Rename check to check_lossless_cast. * clang-format complains * Remove Ramp and Mod from lossless_cast. * Minor changes * Update test/correctness/CMakeLists.txt Co-authored-by: Ankit Aggarwal <aankit@quicinc.com> | 14 December 2020, 17:01:27 UTC |
ed8f7c2 | Dillon Sharlet | 14 December 2020, 04:46:38 UTC | Hide inaccessible symbols in internal linkage (#5548) * Hide inaccessible symbols in internal linkage. * clang-format * Remove redundant static. | 14 December 2020, 04:46:38 UTC |
f9153e8 | Steven Johnson | 13 December 2020, 22:19:38 UTC | Mark Target::OpenGL (etc) as deprecated (#5475) (#5551) | 13 December 2020, 22:19:38 UTC |
4fa78b6 | Alexander Root | 13 December 2020, 18:34:17 UTC | change StrongestExprNodeType for rewriter (#5554) | 13 December 2020, 18:34:17 UTC |
a0ddabe | Volodymyr Kysenko | 12 December 2020, 00:16:35 UTC | Remove <iostream> from the code generated by CodeGen_C (#5547) | 12 December 2020, 00:16:35 UTC |
968f6b3 | aankit-ca | 10 December 2020, 21:32:56 UTC | VectorReduce peephole matching for Hexagon (#5424) * CodeGen for VectorReduce for Hexagon * Remove use of MAKE_ID_PAIR. * Fix clang-format errors. * Spelling correction. * Address comments from PR. Use Shuffle::make_concat instead of vcombine. * Remove IROperator changes. * Address comments * Move even-odd shuffling for vrmpy to runtime .ll func * clang-format + hvx_128 changes.ll changes * clang-format * Minor changes * Minor changes * interchange vshuffvdd operand Co-authored-by: Ankit Aggarwal <aankit@quicinc.com> Co-authored-by: Steven Johnson <srj@google.com> | 10 December 2020, 21:32:56 UTC |
ad414e2 | xndcn | 10 December 2020, 17:10:50 UTC | Add possible simplify to GL(Compute) `pow` function (#5517) OpenGL(Compute) generates `select` IR for `pow(a, b)` function, which can be simplified when `a` or `b` is const. | 10 December 2020, 17:10:50 UTC |
5e526d4 | Zalman Stern | 10 December 2020, 09:40:20 UTC | Modify memoization code to allow using min/extent/stride of an input. (#5542) Modify memoization code to allow using min/extent/stride of a buffer as part of memoization without wrapping in memoize_tag. This seems reasonable and failure to support this causes tricky to diagnose errors if one uses the extent of an input in an RDom that is then used in a memoized Func. The code pattern here is a bit heuristic in that I can't think of a case where a Var has a buffer but the reference isn't to a *field* of the buffer. If this turns out to be incorrect or to become invalid in the future, the code could be extended to pattern match the variable name. | 10 December 2020, 09:40:20 UTC |
382c807 | Steven Johnson | 09 December 2020, 12:06:57 UTC | Update images used in apps/ tests (#5538) Some of them weren't the same as the Make equivalents, which meant that the test diverged between the two build systems (sometimes causing failures due to too-large images). | 09 December 2020, 12:06:57 UTC |
b83de89 | Zalman Stern | 09 December 2020, 04:25:41 UTC | Pathnames may or may not be absolute so loosen comparison to allow for this. (#5535) | 09 December 2020, 04:25:41 UTC |
873c8f1 | Zalman Stern | 08 December 2020, 21:39:04 UTC | Solve the COMDAT in runtime failing on Mac OS X problem once and for all. (#5532) Solve the COMDAT in runtime failing on Mac OS X problem once and for all by removing Comdat IR annotations in runtime on Mac OS and iOS. | 08 December 2020, 21:39:04 UTC |
42b1a6e | Dillon Sharlet | 08 December 2020, 01:11:28 UTC | Add overloaded intrinsic mechanism to simplify code generation (#5527) * Add table of instructions for ARM. * Add CodeGen_LLVM::Intrinsic and related helpers. * Use call_elementwise_intrinsic for more patterns. * Clean up intrinsics a bit. * Use call_elementwise_intrinsic for x86. * More clean-up and comments. * Add comment * Use call_elementwise_intrinsic for pmaddwd * Remove stray comment. * Move a few more things to overloaded intrinsics * Remove unused runtime functions. * Fix some corner case target flags * ssse... * Run clang-format * Replace introspection test. * Remove x86_avx512 initmod * clang-tidy * Remove x86_avx512 from makefile too * Revert simd_op_check * clang-format off on tables * Update Generator.cpp * Update Generator.cpp * Fix requirement for abs_i8x32 * Review fixes * Temporarily work around webassembly strangeness. Co-authored-by: Steven Johnson <srj@google.com> | 08 December 2020, 01:11:28 UTC |
7f70907 | Volodymyr Kysenko | 07 December 2020, 17:17:14 UTC | Combine align and slice for the small vectors in align_loads (#5497) * Combine align and slice for the small vectors in align_loads * Fix format | 07 December 2020, 17:17:14 UTC |
1800dc2 | Volodymyr Kysenko | 07 December 2020, 01:45:39 UTC | Simplify a slice of slice (#5495) * Simplify a slice of slice * Fix format * Simplify for slice of concats + tests * format * format * New line to improve readability Co-authored-by: Steven Johnson <srj@google.com> | 07 December 2020, 01:45:39 UTC |
bd53b47 | Volodymyr Kysenko | 06 December 2020, 20:39:26 UTC | Allow creation of IntImm/UIntImm with any number of bits up to 64 (#5441) * Allow creation of IntImm/UIntImm with any number of bits up to 64 * Changes: - check that the number of bits is >= 1 - modify upgrade_* functions - allow printing of type with arbitrary number of bits. * Fix format * next_power_of_two which will end Co-authored-by: Steven Johnson <srj@google.com> | 06 December 2020, 20:39:26 UTC |
7ea09cd | Alex Reinking | 06 December 2020, 07:38:56 UTC | Point fft JIT tests to Halide binary (#5521) | 06 December 2020, 07:38:56 UTC |
d325e13 | Dillon Sharlet | 04 December 2020, 16:38:05 UTC | Add simd_op_check tests and a few more patterns (#5519) * Add simd_op_check coverage of some ARM ops we generate. * Remove local filter option. * Fix expected patterns for arm32. | 04 December 2020, 16:38:05 UTC |
c1885fc | Alexander Root | 04 December 2020, 00:14:07 UTC | Fixes to bounds inference on shift_left (#5477) * Add shift_left fix for signed integers by possibly negative values + regression test * add required condition on shift_left integer fix * add type check to shift_left minimum condition * fix constant folding of shifts with |b| >= type.bits() for types that allow overflow (failes correctness/simplify test) * make regression tests use scoped bindings * change condition in case int24/int48 proposal happens soon * revert changes based on overflow expectations * add more regression tests * clarify comment * add shift_left min handler for b only UB * fix clang-tidy complaint * relax shift_left of non-negative value constraint * pull case outside of unnecessary preconditions * fix clang-format complaint * fix broken precondition * add typecheck to possibly save a can_prove() call * add easy-out type check to precondition * Add descriptive comment to bug fix + add another early-exit precondition Co-authored-by: Steven Johnson <srj@google.com> | 04 December 2020, 00:14:07 UTC |
28f9aef | Alex Reinking | 03 December 2020, 22:05:21 UTC | Enable commented clang-format option. (#5520) | 03 December 2020, 22:05:21 UTC |
759b241 | Steven Johnson | 03 December 2020, 18:04:00 UTC | Add version-checking to the clang-tidy and clang-format scripts (#5513) Using the 'wrong' version of the tools will produce results out of sync with our presubmit tests, so add checking to ensure the user has their env set up correctly. | 03 December 2020, 18:04:00 UTC |
2ddd0b0 | Steven Johnson | 03 December 2020, 02:10:58 UTC | Revert "Make context handling in GPU runtimes more consistent and robust. (#5474)" (#5515) This reverts commit f47c5c99deac86c6d1f16cfcb1743a0e9e79317d. | 03 December 2020, 02:10:58 UTC |
2c8e3ea | Steven Johnson | 03 December 2020, 02:08:31 UTC | Revert "Fix broken destroy_context() in gpu_multi_context_threaded_aottest.cpp (#5512)" (#5514) This reverts commit 445ed5ee5ba5e23efaabe0b8d6971c0678b5a569. | 03 December 2020, 02:08:31 UTC |
445ed5e | Steven Johnson | 03 December 2020, 00:35:48 UTC | Fix broken destroy_context() in gpu_multi_context_threaded_aottest.cpp (#5512) | 03 December 2020, 00:35:48 UTC |
a34d00d | Alex Reinking | 02 December 2020, 22:44:43 UTC | Adding CMake build for FFT (#5508) * Add fft build * Fix properties * Fix generator argument * Add "Success!" message to fft aot test. * Formatting. * Fix target directory for bench_fft | 02 December 2020, 22:44:43 UTC |
f47c5c9 | Zalman Stern | 02 December 2020, 22:40:21 UTC | Make context handling in GPU runtimes more consistent and robust. (#5474) This PR adds a consistent GPU compiled kernel cache across the Cuda, Direct3D, OpenCL, and Metal runtimes. This cache is robust for kernels being used across multiple contexts and threads as well as using common code via a template. OpenGL and OpenGLCompute are not addressed due to issues in their implementation. There should be no regressions for those runtimes however. Adds tests for many GPU kernels and kernels across contexts and threads. Fixes a bug in CUDA runtime where some error message text in cuda_do_multidimensional_copy was not initialized. Fixes a bug in CUDA runtime where device release code did not run if CUDA libraries are directly linked into the executable. (This would have caused crashes due to the device allocation caching among other issues.) | 02 December 2020, 22:40:21 UTC |
073b8e4 | Alex Reinking | 02 December 2020, 22:19:34 UTC | Add CMake presets for 3.19+ users (#5506) * add CMakePresets.json and update docs * fix Windows presets * remove NDEBUG from GCC options * fix typo in README | 02 December 2020, 22:19:34 UTC |
1c0f824 | Alex Reinking | 02 December 2020, 22:15:23 UTC | Restructure apps to be fully external. (#5507) * Restructure apps to be fully external. * drive-by fix default Halide_TARGET * patch up fused apps build * remove doubled line * fixing multiple import for 3.16 * fix naming convention * Add missing #include <cstdio> | 02 December 2020, 22:15:23 UTC |
329a405 | Dillon Sharlet | 02 December 2020, 18:29:08 UTC | Enable constant folding of broadcasted constants (#5500) * Enable constant folding of broadcasted constants. * Make some scalar constant folding tests vectors. * Remove excessive simplify calls causing infinite recursion. Co-authored-by: Steven Johnson <srj@google.com> | 02 December 2020, 18:29:08 UTC |
6cc24bb | Andrew Adams | 01 December 2020, 20:49:09 UTC | Fix compile time regression in fft (#5494) * Use equal instead of can_prove equality when examining enclosing scope There can be a lot of things in there, and can_prove is expensive. * Speed up bounds_of_inner_var By only expanding enclosing let stmts if the variable is actually used in the result, and by finding the last usage and then skipping anything earlier (skipping over nested producer nodes) Co-authored-by: Steven Johnson <srj@google.com> | 01 December 2020, 20:49:09 UTC |
6af4361 | Steven Johnson | 01 December 2020, 16:58:13 UTC | Fixes for trunk LLVM (#5499) | 01 December 2020, 16:58:13 UTC |
44c9a72 | Dillon Sharlet | 01 December 2020, 04:32:46 UTC | Reduce size of test image (#5496) | 01 December 2020, 04:32:46 UTC |
1ad6fb8 | Dillon Sharlet | 01 December 2020, 04:31:39 UTC | Fix case where simplifying interleaves might need a slice of the original vector (#5492) * Replace is_negative_negatable_const and associated cruft with lossless_negate. * Don't assume an interleave consumes all of the vectors it is shuffled from. * Add test of slices of interleaves. * Fix formatting * Rephrase logic. | 01 December 2020, 04:31:39 UTC |
491791d | Dillon Sharlet | 01 December 2020, 04:31:00 UTC | Simplify signed shifts more strongly (#5491) * Simplify signed shifts more strongly. * Simplify after negating b. * Also mutate other possibly simplifying cast. | 01 December 2020, 04:31:00 UTC |
960f857 | Volodymyr Kysenko | 30 November 2020, 22:58:10 UTC | Fix All value from the ValType table (#5493) | 30 November 2020, 22:58:10 UTC |
21afdc4 | Andrew Adams | 30 November 2020, 21:14:56 UTC | Align the base when doing strided loads from constant addresses (#5489) When we codegen something like f[ramp(x + 1, 2, 16)], where f is an internal allocation, we subtract the 1, do the dense load f[ramp(x, 1, 32)] and then take the odd lanes of the result. The reason for this is that it's likely that there's an f[ramp(x, 2, 16)] nearby, and aligning down the x+1 to x means we can share the dense loads and just deinterleave. This PR does the same when there's no x, just an odd constant. This means that cases like f[ramp(64, 2, 16)] + f[ramp(65, 2, 16)] now generate much better assembly. In one case I have it speeds up an entire pipeline by 8%, because aligning the loads in this way causes them to all be promoted off the stack into registers. | 30 November 2020, 21:14:56 UTC |
226b12c | Steven Johnson | 30 November 2020, 19:12:07 UTC | Improve speed of testing apps/ (#5482) * Improve speed of testing apps/ - Skip all app tests that are labeled as 'benchmarks' - Specify `--build-noclean` to avoid unnecessary full rebuilds * Change label 'benchmark' -> 'slow_tests' | 30 November 2020, 19:12:07 UTC |
16929df | Dillon Sharlet | 30 November 2020, 18:27:56 UTC | Add Type::widen and Type::narrow helpers. (#5478) * Add Type::widen and Type::narrow helpers. * widen -> wide, more uses of wide. * wide back to widen. Co-authored-by: Dillon Sharlet <dsharlet@gmail.com> | 30 November 2020, 18:27:56 UTC |
78489d0 | Dillon Sharlet | 30 November 2020, 16:15:16 UTC | Small cleanups/fixes (#5479) * Small cleanups/fixes peeled from lower-patterns2. * Fix derp * Fix possibly undefined evaluation order. * Smaller code. * Work around test issue. | 30 November 2020, 16:15:16 UTC |
49ca720 | Dillon Sharlet | 30 November 2020, 15:43:18 UTC | Replace is_negative_negatable_const and more logic with lossless_negate (#5490) * Replace is_negative_negatable_const and associated cruft with lossless_negate. * Add comment | 30 November 2020, 15:43:18 UTC |
bfbfacd | Dillon Sharlet | 27 November 2020, 20:31:02 UTC | Revert formatting of Hexagon intrinsic table (#5484) * Revert formatting of Hexagon intrinsic table * Revert one extra find and replace. | 27 November 2020, 20:31:02 UTC |
f911a89 | Dillon Sharlet | 26 November 2020, 07:40:25 UTC | Add as_intrinsic helper (#5480) * Add as_intrinsic helper. * Rename calls of known intrinsics. * Fix check_sio. | 26 November 2020, 07:40:25 UTC |
59bbc4d | Dillon Sharlet | 25 November 2020, 19:36:02 UTC | Simplify intrinsics of broadcasts to broadcasts of intrinsics (#5473) * Simplify intrinsics of broadcasts to broadcasts of intrinsics. * Fix broadcast elementwise simplifications for nested broadcasts. * broadcasted -> broadcast. | 25 November 2020, 19:36:02 UTC |
3cb2adb | Steven Johnson | 24 November 2020, 21:52:00 UTC | Improvements to HalideTraceViz (#5466) - Handle 4D inputs more gracefully - Improve horizontal squishing of long labels | 24 November 2020, 21:52:00 UTC |
87c9fac | Alex Reinking | 24 November 2020, 00:32:49 UTC | Fail CMake when LLVM_LINK_LLVM_DYLIB conflicts with wasm (#5472) * Fail CMake when LLVM_LINK_LLVM_DYLIB conflicts with wasm * Update error message and add comment. | 24 November 2020, 00:32:49 UTC |
31e9687 | Alexander Root | 23 November 2020, 23:01:04 UTC | Remove AndConditionOverDomain and fix Interval::everything() uses in Bounds (#5455) * rm AndConditionOverDomain and fix Interval::everything() uses in Bounds * fix clang-tidy complaint * rm unnecessary/irrelevant comment * nit: add line break | 23 November 2020, 23:01:04 UTC |
7447e51 | Andrew Adams | 23 November 2020, 18:11:14 UTC | Better codegen for ramps with non-const stride (#5463) | 23 November 2020, 18:11:14 UTC |
7130069 | Tian Jin | 22 November 2020, 20:54:41 UTC | Fix inconsistency between code & documentation. (#5469) | 22 November 2020, 20:54:41 UTC |
08825b6 | Steven Johnson | 22 November 2020, 00:21:25 UTC | Add optional NAMESPACE arg to `add_halide_library()` (#5467) * Add optional NAMESPACE arg to `add_halide_library()` This is just syntactic sugar for adding the namespace explicitly to the function name, but for code with long namespaces and/or function names this can make for more readable build files. (The Bazel/Blaze build rules offer a similar option and it works well there.) * Update README_cmake.md | 22 November 2020, 00:21:25 UTC |
6c754cf | Emil Melnikov | 20 November 2020, 19:53:34 UTC | Change "CMAKE_MODULE_PATH" to "CMAKE_PREFIX_PATH" (#5461) I tried to use instructions for a basic CMake project with a locally downloaded copy of Halide, and got the following error: ``` CMake Error at CMakeLists.txt:9 (find_package): By not providing "FindHalide.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "Halide", but CMake did not find one. Could not find a package configuration file provided by "Halide" with any of the following names: HalideConfig.cmake halide-config.cmake Add the installation prefix of "Halide" to CMAKE_PREFIX_PATH or set "Halide_DIR" to a directory containing one of the above files. If "Halide" provides a separate development package or SDK, be sure it has been installed. ``` Changing `CMAKE_MODULE_PATH` to `CMAKE_PREFIX_PATH` worked for me. | 20 November 2020, 19:53:34 UTC |
c510744 | Steven Johnson | 20 November 2020, 02:09:08 UTC | Allow HL_EXTRA_OUTPUTS as a way to get extra Generator outputs for debugging (#5457) * Allow HL_EXTRA_OUTPUTS as a way to get extra Generator outputs for debugging * Update Generator.cpp | 20 November 2020, 02:09:08 UTC |
5137369 | Steven Johnson | 17 November 2020, 18:38:06 UTC | Update Android NDK support in apps/ (#5454) * Update Android NDK support in apps/ The Makefile help for apps/ assumed a fairly old version of the Android NDK (~2017). This updates to assume r19 or later: - No need to do `make-standalone-toolchain` anymore - Clang instead of GCC - assume static linking of libc++ is the right default I am limited in my ability to test on-device here (I don't have a device that will let me test HVX easily). apps/blur works fine onmy P2XL after this change, though. Also, drive-by fix to apps/simd_op_check to remove hvx_64 references. | 17 November 2020, 18:38:06 UTC |
c0ca4ff | Steven Johnson | 16 November 2020, 20:34:33 UTC | Revert C++11 usage in hexagon_remote (#5446) * Revert C++11 usage in hexagon_remote Building hexagon_remote with C++11 ends up inserting some unwanted C++11-related symbols (__gxx_personality_v0) that aren't present. This reverts those changes, and modifies HalideRuntime.h so that most of the `__cplusplus` checks are now `__cplusplus >= 201103L` (i.e., C++ convenience features only exist when compiled under C++11 or later). * Appease MSVC idiocy | 16 November 2020, 20:34:33 UTC |
e3fc746 | Infinoid | 16 November 2020, 17:34:31 UTC | Fix typo in comment: jit_compile -> compile_jit (#5453) | 16 November 2020, 17:34:31 UTC |
e5ff1b6 | Dillon Sharlet | 16 November 2020, 17:33:32 UTC | Revert "Push lets near their uses (whenever possible) while CSEing += (#5387)" (#5448) This reverts commit d5e425ee29f165b9de3527a267837093f99e59be. | 16 November 2020, 17:33:32 UTC |
fca1b44 | Pranav Bhandarkar | 12 November 2020, 23:24:18 UTC | update readme.md for hexagon (#5444) | 12 November 2020, 23:24:18 UTC |
c8ab278 | Alexander Root | 11 November 2020, 18:41:34 UTC | add conditions for one-sided bounds to LT/GT, LE/GE, EQ, NEQ (#5438) add conditions for one-sided bounds to LT/GT, LE/GE, EQ, NEQ | 11 November 2020, 18:41:34 UTC |
eac39c7 | Andrew Adams | 11 November 2020, 17:25:31 UTC | is_zero -> is_const_zero (#5436) is_zero -> is_const_zero | 11 November 2020, 17:25:31 UTC |
d53b9ef | Volodymyr Kysenko | 10 November 2020, 18:11:14 UTC | Make simd_op_check.h more overridable (#5442) | 10 November 2020, 18:11:14 UTC |
f524111 | Steven Johnson | 05 November 2020, 19:55:10 UTC | FIx for trunk LLVM (#5435) | 05 November 2020, 19:55:10 UTC |
8b333bc | Andrew Adams | 05 November 2020, 17:10:44 UTC | is_zero is a compile-time check if it's the constant zero (#5433) I think for this code we want a runtime check if it's zero or not. | 05 November 2020, 17:10:44 UTC |
c45124f | John Laxson | 04 November 2020, 17:35:32 UTC | Use new flag for clang tidy behavior in cmake (#5428) * Use new flag for clang tidy | 04 November 2020, 17:35:32 UTC |
ece39b6 | Steven Johnson | 04 November 2020, 00:12:15 UTC | Upgrade PyBind11 version in CMake to 2.5 (#5427) v2.4.3 can generate a lot of compiler warnings under C++17; v2.5 fixes there. Note 1: I am unsure about the issues with keeping in sync with Ubuntu 20.04; tagging @alexreinking for comments Note 2: the current version of PyBind11 is actually v2.6, but it has many more changes and upgrading looks nontrivial; deliberately holding off on that upgrade for now. | 04 November 2020, 00:12:15 UTC |
cd3f1d8 | Steven Johnson | 03 November 2020, 01:31:02 UTC | Fix various clang-tidy issues (#5426) * Fix various clang-tidy issues For some reason, these are only getting flagged under C++17 builds, but they are legit (minor) issues we want to fix. | 03 November 2020, 01:31:02 UTC |
69643ce | Steven Johnson | 02 November 2020, 23:40:01 UTC | Fix for trunk LLVM (#5425) | 02 November 2020, 23:40:01 UTC |
025f054 | Andrew Adams | 30 October 2020, 17:12:05 UTC | Remove superfluous boundary condition in resize (#5414) * Remove superfluous boundary condition in resize and tweak schedule. ~10-15% faster | 30 October 2020, 17:12:05 UTC |
6994a15 | Alex Reinking | 30 October 2020, 16:20:38 UTC | fix GCC -> GNU in generator expressions (#5419) | 30 October 2020, 16:20:38 UTC |
acb818b | Steven Johnson | 30 October 2020, 16:18:39 UTC | Add missing operator^ overloads in CppVector (Issue #5415) (#5416) | 30 October 2020, 16:18:39 UTC |
91b88b5 | Steven Johnson | 30 October 2020, 16:18:09 UTC | Don't declare round/roundf for multi-threaded MSVC builds (Issue #5403) (#5417) | 30 October 2020, 16:18:09 UTC |
feb81a2 | Andrew Adams | 28 October 2020, 21:08:39 UTC | doxygen wasn't finding the runtime (#5410) | 28 October 2020, 21:08:39 UTC |
3fd654f | Alexander Root | 28 October 2020, 21:07:57 UTC | loosen preconditions on div by single point in Bounds.cpp (#5407) Loosen preconditions on div by single point for integers | 28 October 2020, 21:07:57 UTC |
d5e425e | Pranav Bhandarkar | 28 October 2020, 20:19:40 UTC | Push lets near their uses (whenever possible) while CSEing += (#5387) * Push lets near their uses (whenever possible) while CSEing += The CSE pass tries to do CSE jointly on the index and value of store nodes. This is to stop: f[x] = f[x] + y from turning into f[x] = f[z] + y This is because the two 'x' indices are not CSE'd together. However, one problem with jointly CSEing the store index and vaues is that after CSEing, the pass puts the lets (the values that were CSE'd) before the new store. That is we get, let(t0...) let(t1...) f[t0] = f[t0] + function_of(t1) Suppose however, there was nothing to CSE between the store index and value, that is the index was unchanged after CSE. In that case, moving lets before the store puts the lets too far away from their uses. This is ok except, there are passes like LoopCarry that are beneficial when they are able to see a long continuous block of stores (eg. when unrolling). But now, they'll see a long sequence of LetStmts. Instead, if the index was unchanged after CSE, we should build up the stores as f[x] = let(t0.. in (value)); This way LoopCarry is given a chance to see a series of stores. Handling this in CSE, means the LoopCarry pass need not be complicated. Change-Id: Iae19e1f69a6b38f3224a64b0c4781533e3862970 * In CSE, when we bundle together the store index and store value, create LetStmts only for CSE'd values that are needed by the store index. The rest can be Let expressions around the store value. * Formatting fix for printing the IR after CSE * Be smarter about pushing lets near their uses when CSEing += In a previous patch, in the code that handles CSEing += store operations, we weren't general enough; we only handled the specific case when the store index remained unchanged when CSE'd together with the store value. This patch is more general. Even if the store index changes, only the use-def chains created from the values used by the new store index that end in defs created by CSE are retained as Let stmts around the new store. Others go as Let expressions around the store value. * Fix some formatting issues exposed by clang-format and remove the inclusion of ExprUsesVar.h in CSE.cpp because it is not used anymore. * Use override in GetVarsUsed in CSE.cpp | 28 October 2020, 20:19:40 UTC |
7896513 | Steven Johnson | 27 October 2020, 19:03:29 UTC | Update IntrusivePtr.h | 28 October 2020, 00:38:57 UTC |
6e0b499 | Steven Johnson | 27 October 2020, 17:47:46 UTC | Update IntrusivePtr.h | 28 October 2020, 00:38:57 UTC |
e96a0e9 | Steven Johnson | 27 October 2020, 17:05:11 UTC | Update IntrusivePtr.h | 28 October 2020, 00:38:57 UTC |
116a3f0 | Steven Johnson | 27 October 2020, 00:52:54 UTC | More clang-tidy cleanup | 28 October 2020, 00:38:57 UTC |
864955e | Andrew Adams | 26 October 2020, 23:23:46 UTC | web assembly threads + demo app (#5395) Add webassembly demo app and enable webassembly in the makefile. | 26 October 2020, 23:23:46 UTC |
deb10c6 | Steven Johnson | 23 October 2020, 17:32:18 UTC | Add -fno-threadsafe-statics | 26 October 2020, 17:12:50 UTC |
f853c89 | Steven Johnson | 22 October 2020, 17:19:17 UTC | Upgrade hexagon_remote/Makefile to use C++11 HalideRuntime.h now requires at least C++11 (for C++ files), so ensure that we pass `-std=c++11` for all those when building the remote. | 26 October 2020, 17:12:50 UTC |
9ea017c | Shihpo Hung | 22 October 2020, 13:45:21 UTC | Fix transitive dependencies | 26 October 2020, 16:47:38 UTC |
7142fa7 | Mark Glines | 22 October 2020, 16:34:13 UTC | Add Stage.gpu_lanes to Python bindings. | 23 October 2020, 17:19:50 UTC |
fef108b | Steven Johnson | 23 October 2020, 16:56:28 UTC | Upgrade WABT version to 1.0.19 | 23 October 2020, 16:56:44 UTC |
2d1aee9 | Zalman Stern | 22 October 2020, 20:39:39 UTC | Add a test case for multiple argument memoize_tag to demonstrate usage. (#5393) * Add a test case for multiple argument memoize_tag usage to demonstrate how it works. * Fix formatting typo. | 22 October 2020, 20:39:39 UTC |
475c7a0 | Dillon Sharlet | 21 October 2020, 21:52:17 UTC | Use locally declared type. | 22 October 2020, 16:35:54 UTC |
4f072bc | Dillon Sharlet | 21 October 2020, 21:34:49 UTC | Fix bounds resulting in vector types. | 22 October 2020, 16:35:54 UTC |
75077ed | Steven Johnson | 21 October 2020, 22:33:14 UTC | Add missing quotes in run-clang-format.sh | 21 October 2020, 23:16:52 UTC |
0cc8c30 | Steven Johnson | 21 October 2020, 18:35:14 UTC | Tickle Buildbots | 21 October 2020, 22:34:15 UTC |
8d1784f | Steven Johnson | 20 October 2020, 21:31:44 UTC | Change NULL -> nullptr enable the modernize-use-nullptr check in clang-tidy and fix all complaints wer | 21 October 2020, 22:34:15 UTC |
31f1937 | Pranav Bhandarkar | 21 October 2020, 20:36:54 UTC | Merge pull request #5365 from halide/pdb_remove_hvx_v64 Issue #3925 : Remove hvx_64 | 21 October 2020, 20:36:54 UTC |
d94e7a7 | Steven Johnson | 21 October 2020, 16:44:25 UTC | Update CodeGen_Hexagon.cpp | 21 October 2020, 16:44:25 UTC |
e520503 | Steven Johnson | 21 October 2020, 16:33:44 UTC | Merge branch 'master' into pdb_remove_hvx_v64 | 21 October 2020, 16:33:44 UTC |
fc959e7 | Steven Johnson | 21 October 2020, 16:26:49 UTC | Merge pull request #5382 from halide/srj/readability Enable the useful readability-* checks in clang-tidy | 21 October 2020, 16:26:49 UTC |
ce2f41d | Steven Johnson | 21 October 2020, 16:25:54 UTC | Merge pull request #5384 from dragly/dragly/python-negate-operator Add `logical_not` function for Python | 21 October 2020, 16:25:54 UTC |
235abe4 | Steven Johnson | 21 October 2020, 01:03:30 UTC | Tickle Buildbots | 21 October 2020, 16:24:22 UTC |
acbc69a | Steven Johnson | 20 October 2020, 20:47:06 UTC | Enable modernize-use-equals-default/delete in clang-tidy | 21 October 2020, 16:24:22 UTC |
61792d8 | Svenn-Arne Dragly | 20 October 2020, 22:06:58 UTC | Add logical_not function for Python This change introduces `logical_not` as a free function and member function that calls `operator!`. The reason why a new function is added is because there is no `operator!` in Python and the `not` keyword cannot be overloaded. Hence, there was currently no way to call the C++ `operator!` in Python. | 21 October 2020, 08:35:48 UTC |
e2820e2 | Steven Johnson | 20 October 2020, 21:11:46 UTC | Enable the useful readability-* checks in clang-tidy | 20 October 2020, 21:11:46 UTC |
b2c9769 | Pranav Bhandarkar | 20 October 2020, 20:57:09 UTC | Merge branch 'master' into pdb_remove_hvx_v64 | 20 October 2020, 20:57:09 UTC |
00f50a1 | Steven Johnson | 20 October 2020, 20:18:09 UTC | Merge pull request #5379 from halide/srj/mod2 Enable clang-tidy's modernize-use-default-member-init check | 20 October 2020, 20:18:09 UTC |