2cd9c91 | Steven Johnson | 31 March 2020, 23:46:32 UTC | WIP | 31 March 2020, 23:46:32 UTC |
f2aaab3 | Steven Johnson | 31 March 2020, 23:29:32 UTC | foo | 31 March 2020, 23:29:32 UTC |
8ef7497 | Steven Johnson | 31 March 2020, 23:04:57 UTC | foo | 31 March 2020, 23:04:57 UTC |
22cde9c | Steven Johnson | 31 March 2020, 23:00:51 UTC | foo | 31 March 2020, 23:00:51 UTC |
ad0b40d | Steven Johnson | 31 March 2020, 22:57:44 UTC | foo | 31 March 2020, 22:57:44 UTC |
b357ae8 | Steven Johnson | 31 March 2020, 22:54:07 UTC | foo | 31 March 2020, 22:54:07 UTC |
bacebb5 | Steven Johnson | 31 March 2020, 22:47:15 UTC | foo | 31 March 2020, 22:47:15 UTC |
4430f19 | Steven Johnson | 31 March 2020, 22:34:48 UTC | wip | 31 March 2020, 22:34:48 UTC |
cb6f4a9 | Steven Johnson | 31 March 2020, 18:12:43 UTC | Merge pull request #4810 from halide/srj-pr Remove unnecessary pull_request types | 31 March 2020, 18:12:43 UTC |
4ef4016 | Andrew Adams | 31 March 2020, 18:10:36 UTC | Merge pull request #4807 from halide/full_clamp_of_extern_bounds_query Do a full clamp of inner bounds to an outer query | 31 March 2020, 18:10:36 UTC |
48ccf1d | Steven Johnson | 31 March 2020, 18:01:51 UTC | Remove unnecessary pull_request types edited and review_requested are irrelevant for the purposes of presubmit.yml | 31 March 2020, 18:01:51 UTC |
77a1799 | Steven Johnson | 30 March 2020, 22:49:32 UTC | Merge pull request #4805 from Infinoid/python-bilateral_grid GPU fixes for python_bindings/apps/bilateral_grid.py | 30 March 2020, 22:49:32 UTC |
0cc286e | Mark Glines | 30 March 2020, 20:12:05 UTC | Add a copy_to_host call to bilateral_grid.py. Thanks to steven-johnson for spotting this. | 30 March 2020, 20:12:05 UTC |
39802c9 | Andrew Adams | 30 March 2020, 19:03:05 UTC | Do a full clamp of inner bounds to an outer query This avoids generating buffers with negative extents in cases where the reply to the inner bounds query doesn't overlap the outer bounds query at all, and also, by giving an upper *and* lower bound to these expressions, avoids a type of unbounded access discovered here: https://github.com/halide/Halide/pull/3037#issuecomment-604136412 | 30 March 2020, 19:03:05 UTC |
8097ca3 | Mark Glines | 30 March 2020, 18:21:52 UTC | Fix bilateral_grid.py to check JIT targets when compiling in JIT mode. Fix obsolete interface usage in GPU schedule. | 30 March 2020, 18:21:52 UTC |
4e44b6a | Steven Johnson | 26 March 2020, 22:10:07 UTC | Merge pull request #4665 from halide/srj-llvm8 Drop support for LLVM8 (Issue #4560) | 26 March 2020, 22:10:07 UTC |
a766000 | Steven Johnson | 26 March 2020, 21:35:59 UTC | Update .travis.yml | 26 March 2020, 21:35:59 UTC |
70808b8 | Steven Johnson | 26 March 2020, 20:46:27 UTC | Update .travis.yml | 26 March 2020, 20:46:27 UTC |
82d935f | Steven Johnson | 26 March 2020, 18:50:51 UTC | Update .travis.yml | 26 March 2020, 18:50:51 UTC |
2f088f9 | Steven Johnson | 26 March 2020, 18:22:27 UTC | Merge branch 'master' into srj-llvm8 | 26 March 2020, 18:22:27 UTC |
88b0a7d | Steven Johnson | 26 March 2020, 18:21:15 UTC | Merge pull request #4799 from halide/tzumao_generator_documentation add python_extension to generator's usage help text | 26 March 2020, 18:21:15 UTC |
2396e22 | Steven Johnson | 26 March 2020, 18:20:46 UTC | Merge pull request #4795 from seanprime7/cmake_gradient_autoscheduler_test_win Add run_gradient_autoschduler_test_py | 26 March 2020, 18:20:46 UTC |
817ed65 | Steven Johnson | 26 March 2020, 17:52:17 UTC | Merge pull request #4793 from halide/srj-py Enable Python Bindings on Windows by default | 26 March 2020, 17:52:17 UTC |
f76e527 | Steven Johnson | 26 March 2020, 17:50:59 UTC | Merge pull request #4798 from mroavi/master Fix Func name | 26 March 2020, 17:50:59 UTC |
d55b1a5 | Tzu-Mao Li | 26 March 2020, 17:22:47 UTC | add python_extension to generator's usage help text | 26 March 2020, 17:22:47 UTC |
59844ea | Martin Roa Villescas | 26 March 2020, 03:37:29 UTC | Fix Func name | 26 March 2020, 03:37:29 UTC |
5570649 | Steven Johnson | 25 March 2020, 20:12:04 UTC | Merge pull request #4794 from mroavi/master Fix usage of HalideTraceViz | 25 March 2020, 20:12:04 UTC |
e182890 | Martin Roa Villescas | 25 March 2020, 20:04:54 UTC | Fix usage of HalideTraceViz The generation of the row major example in lesson 5 is using an old syntax which results in an error. | 25 March 2020, 20:04:54 UTC |
f6e2354 | Steven Johnson | 25 March 2020, 18:44:32 UTC | Merge pull request #4744 from halide/slow_depthwise_convolution Fix pathologically slow depthwise convolution compilation | 25 March 2020, 18:44:32 UTC |
5368ae9 | Steven Johnson | 25 March 2020, 17:03:54 UTC | Merge branch 'master' into srj-py | 25 March 2020, 17:03:54 UTC |
fc6e6a5 | Steven Johnson | 25 March 2020, 16:58:54 UTC | Update CMakeLists.txt | 25 March 2020, 16:58:54 UTC |
6d326fc | Sean Lee | 24 March 2020, 22:41:48 UTC | Add run_gradient_autoschduler_test_py Also, fix PATH for run_gradient_autoscheduler_test_cpp on Windows | 25 March 2020, 00:01:53 UTC |
f402326 | Steven Johnson | 24 March 2020, 22:34:59 UTC | Enable Python Bindings on Windows by default They were initially disabled because winbots were misconfigured. Also, drive-by update of test.yml to fix similar issue (even though it's still disabled). | 24 March 2020, 22:34:59 UTC |
e05e957 | Volodymyr Kysenko | 24 March 2020, 22:29:26 UTC | Merge pull request #4696 from halide/vksnk/align-strategy Consider variable names of fused function when looking for the loop min/max in compute_shift_factor | 24 March 2020, 22:29:26 UTC |
9af78d6 | Steven Johnson | 24 March 2020, 20:52:31 UTC | Merge branch 'master' into srj-llvm8 | 24 March 2020, 20:52:31 UTC |
758e1e0 | Andrew Adams | 24 March 2020, 19:46:25 UTC | Merge pull request #4782 from halide/warp_shuffle_fix Teach lower warp shuffles to recognize lane <= 0 | 24 March 2020, 19:46:25 UTC |
8f21d3e | Volodymyr Kysenko | 24 March 2020, 17:17:13 UTC | Merge branch 'master' into vksnk/align-strategy | 24 March 2020, 17:17:13 UTC |
88d693c | Volodymyr Kysenko | 24 March 2020, 17:15:52 UTC | Merge branch 'vksnk/align-strategy' of https://github.com/halide/Halide into vksnk/align-strategy | 24 March 2020, 17:15:52 UTC |
e570b27 | Steven Johnson | 24 March 2020, 17:14:20 UTC | Merge pull request #4790 from halide/dpalermo_generator_202003 constructor for 'Halide::Internal::StubInput' must explicitly initial… | 24 March 2020, 17:14:20 UTC |
d7627b1 | Andrew Adams | 24 March 2020, 17:11:54 UTC | Merge pull request #4785 from halide/generalize_uniquify_variable_names Generalize uniquify_variable_names | 24 March 2020, 17:11:54 UTC |
06f6672 | Dan Palermo | 24 March 2020, 16:52:00 UTC | constructor for 'Halide::Internal::StubInput' must explicitly initialize const members - Seen when compiling Halide apps with certain versions of clang++ - Seems like a valid complaint (just not reported by all compilers) | 24 March 2020, 16:52:00 UTC |
0a3dd31 | Volodymyr Kysenko | 24 March 2020, 16:40:47 UTC | Merge pull request #4788 from halide/vksnk/compute_with_error2 More specific compute_with error message | 24 March 2020, 16:40:47 UTC |
a5e5092 | Andrew Adams | 24 March 2020, 16:37:11 UTC | Merge pull request #4779 from halide/declare_box_touched Don't depend on magic names in allocation bounds inference | 24 March 2020, 16:37:11 UTC |
84cdba3 | Andrew Adams | 24 March 2020, 16:36:18 UTC | Merge remote-tracking branch 'origin/master' into warp_shuffle_fix | 24 March 2020, 16:36:18 UTC |
1e0a116 | Steven Johnson | 24 March 2020, 02:04:51 UTC | Merge pull request #4734 from seanprime7/cmake_python_bindings Cmake python bindings | 24 March 2020, 02:04:51 UTC |
ba4b858 | Steven Johnson | 24 March 2020, 02:04:29 UTC | Merge pull request #4777 from davidok8/maint-fix-linking-with-openmp MAINT: fix linking with OpenMP using the modern CMake way. | 24 March 2020, 02:04:29 UTC |
0b23698 | Steven Johnson | 23 March 2020, 23:23:25 UTC | Merge pull request #4783 from halide/impure_monotonic_fix Calls can't be considered constant if they are impure | 23 March 2020, 23:23:25 UTC |
464123f | Andrew Adams | 23 March 2020, 22:52:56 UTC | Don't depend on function evaluation order. Reserve generated names. | 23 March 2020, 22:52:56 UTC |
e6ed9fa | Steven Johnson | 23 March 2020, 22:48:59 UTC | Merge pull request #4787 from halide/tzumao_associativity_use_graph_equal Use graph_equal instead of equal in prove_associativity | 23 March 2020, 22:48:59 UTC |
91e9c96 | Volodymyr Kysenko | 23 March 2020, 22:39:47 UTC | Extend error message with extra information | 23 March 2020, 22:39:47 UTC |
a7c8ce1 | Steven Johnson | 23 March 2020, 22:35:11 UTC | Merge pull request #4769 from halide/mux_tuple mux accepts tuples | 23 March 2020, 22:35:11 UTC |
73b20ed | Tzu-Mao Li | 23 March 2020, 22:05:20 UTC | Merge pull request #4780 from halide/tzumao_autodiff_random_float Fix a bug in autodiff caused by the implicit capture of lower_random | 23 March 2020, 22:05:20 UTC |
859fae3 | Volodymyr Kysenko | 23 March 2020, 21:41:45 UTC | Merge branch 'master' into vksnk/align-strategy | 23 March 2020, 21:41:45 UTC |
d5accff | Volodymyr Kysenko | 23 March 2020, 21:09:27 UTC | Use local var to get the name | 23 March 2020, 21:09:27 UTC |
fb1c45a | Andrew Adams | 23 March 2020, 20:38:24 UTC | Merge pull request #4778 from halide/clamp_extern_to_outer_bounds Instead of just assuming bounds query results can be lifted, enforce nesting | 23 March 2020, 20:38:24 UTC |
794ab38 | Volodymyr Kysenko | 23 March 2020, 20:30:21 UTC | More specific compute_with error message | 23 March 2020, 20:30:21 UTC |
cd02847 | Andrew Adams | 23 March 2020, 19:54:10 UTC | Merge remote-tracking branch 'origin/master' into warp_shuffle_fix | 23 March 2020, 19:54:10 UTC |
54a8372 | Andrew Adams | 23 March 2020, 19:53:35 UTC | Merge remote-tracking branch 'origin/master' into declare_box_touched | 23 March 2020, 19:53:35 UTC |
dbf3e44 | Andrew Adams | 23 March 2020, 19:52:52 UTC | Don't try to move a scope | 23 March 2020, 19:52:52 UTC |
726d6a1 | Volodymyr Kysenko | 23 March 2020, 19:42:22 UTC | Added comment why test was disabled. | 23 March 2020, 19:42:22 UTC |
c3ecb12 | Volodymyr Kysenko | 23 March 2020, 19:40:25 UTC | Always use parent variable name. Also, disabled test which generates OOB. | 23 March 2020, 19:40:25 UTC |
6973247 | Tzu-Mao Li | 23 March 2020, 19:34:18 UTC | Use graph_equal instead of equal in prove_associativity | 23 March 2020, 19:34:18 UTC |
5795571 | Andrew Adams | 23 March 2020, 19:14:25 UTC | Generalize uniquify_variable_names Currently uniquify_variable_names only works on exactly the kind of duplicate names we tend to generate in bounds inference, and only if you run it on the entire stmt. In other circumstances it does odd things (e.g. attach negative integer suffixes to free variables!), and we risk introducing bugs, as I discovered in another PR. This PR fixes uniquify_variable_names to do the right thing in the general case, and adds tests. Also added some needed functionality to Scope - you can now query the number of nested definitions of the same thing, and you can move a Scope. | 23 March 2020, 19:14:25 UTC |
6729ea8 | dpalermo | 23 March 2020, 18:20:09 UTC | Merge pull request #4768 from halide/dpalermo_hexagon_remote_202003 Add SDK_ROOT control to hexagon_remote/Makefile | 23 March 2020, 18:20:09 UTC |
3d79107 | Volodymyr Kysenko | 23 March 2020, 18:15:24 UTC | Merge branch 'master' into vksnk/align-strategy | 23 March 2020, 18:15:24 UTC |
12d1559 | Andrew Adams | 23 March 2020, 17:55:54 UTC | Merge pull request #4772 from halide/simplify_min_lt_min_v2 Add simplifications of min(x, y) < min(x, z), and similar | 23 March 2020, 17:55:54 UTC |
9c3b280 | Steven Johnson | 23 March 2020, 17:42:09 UTC | Merge pull request #4770 from seanprime7/readme_widows_cmake_build_command Add LLVM_ENABLE_PROJECTS to cmake command for llvm on Win | 23 March 2020, 17:42:09 UTC |
76b87bd | Steven Johnson | 23 March 2020, 17:40:55 UTC | Merge branch 'master' into mux_tuple | 23 March 2020, 17:40:55 UTC |
8842595 | Sean Lee | 23 March 2020, 17:38:07 UTC | Turn off python bindings in travis. Travis doesn't have the right Python setup. | 23 March 2020, 17:38:32 UTC |
a4fc861 | Tzu-Mao Li | 23 March 2020, 17:15:06 UTC | refactor intrinsic derivatives | 23 March 2020, 17:15:06 UTC |
184eda6 | Andrew Adams | 23 March 2020, 17:07:29 UTC | Delete erroneous namespace comment | 23 March 2020, 17:07:29 UTC |
4a740a4 | Andrew Adams | 23 March 2020, 17:05:58 UTC | Add test | 23 March 2020, 17:05:58 UTC |
0a80ccc | Andrew Adams | 23 March 2020, 17:03:22 UTC | Impure calls should not be considered constant in is_monotonic even if their args are constant. | 23 March 2020, 17:03:22 UTC |
cc03d54 | Andrew Adams | 23 March 2020, 17:01:54 UTC | Teach lower warp shuffles to recognize lane <= 0 The warp shuffle pass needs to know when code is dropping down to a reduced number of threads. Previously it only understood lane < constant. This teaches it to recognize the lane <= constant too. Unfortunately I don't currently have a failing case that this fixes, but I did during an intermediate state of another branch. | 23 March 2020, 17:01:54 UTC |
fcba06e | Tzu-Mao Li | 23 March 2020, 13:12:09 UTC | Merge branch 'master' into tzumao_autodiff_random_float | 23 March 2020, 13:12:09 UTC |
c53efeb | Tzu-Mao Li | 23 March 2020, 02:18:35 UTC | add const to range-based for when appropriate | 23 March 2020, 02:18:35 UTC |
4dfd68b | Tzu-Mao Li | 23 March 2020, 02:15:05 UTC | use range-based for when appropriate | 23 March 2020, 02:15:05 UTC |
fef4e55 | Tzu-Mao Li | 22 March 2020, 23:34:01 UTC | clang-tidy comments | 22 March 2020, 23:34:01 UTC |
7b17943 | Tzu-Mao Li | 22 March 2020, 23:01:26 UTC | remove debug code | 22 March 2020, 23:01:26 UTC |
51acc1e | Tzu-Mao Li | 22 March 2020, 22:59:41 UTC | Change lower_random interface instead of fixing autodiff | 22 March 2020, 22:59:41 UTC |
942f628 | Tzu-Mao Li | 22 March 2020, 22:44:07 UTC | clang format | 22 March 2020, 22:44:07 UTC |
da7b07e | Tzu-Mao Li | 22 March 2020, 22:42:41 UTC | clang format | 22 March 2020, 22:42:41 UTC |
7ce3610 | Tzu-Mao Li | 22 March 2020, 22:39:36 UTC | only replace the domain in fill_rvar_domain when the domain is not defined | 22 March 2020, 22:39:36 UTC |
1c28ec2 | Tzu-Mao Li | 22 March 2020, 22:34:05 UTC | Fix a bug in autodiff caused by the implicit capture of lower_random | 22 March 2020, 22:34:05 UTC |
dd3b52f | Andrew Adams | 22 March 2020, 22:29:58 UTC | Don't depend on magic names in allocation bounds inference This is another independent improvement carved off of #3037 / #4713 Allocation bounds inference for a Func foo depends on the magic names foo.x.min/foo.x.max at the realization site. The only reason it needs them is to ensure it knows that an extern stage is going to write to the whole region required. We can just tell it that earlier instead with a marker in the IR that says "you should treat this marker as a write to this buffer over this region". Presto, no magic name. | 22 March 2020, 22:29:58 UTC |
b87238a | Andrew Adams | 22 March 2020, 22:15:15 UTC | Instead of just assuming bounds query results can be lifted, enforce nesting TL;DR: This is an improvement from #3037 / #4713 that can be tested and checked in independently. It removes one type of magic name usage. Allocation bounds inference (well, boxes_touched) relies on magic names in its handling of getting the min/max out of a bounds query result. It just lifts them out of their containing scope (see the deleted code in Bounds.cpp below), assuming a bounds query buffer of the same name also exists in the containing scope, and also assuming that the result of that outer bounds query was a valid interval containing the result of the inner bounds query. Yuck. I removed that special handling from boxes_touched, and instead explicitly clamped the inner bounds query result to be within the outer region required, which comes from the outer bounds query. That gives boxes_touched a way to bound the impure call with something. So now if we have a misbehaving extern stage, which lies in its outer bounds query and says it's going to ask for less than it does in the inner bounds query, it simply doesn't get what it asks for in the inner bounds query. It gets the intersection of the outer bounds query result and the inner bounds query result. Too bad. This behavior is illustrated in the new test. Formerly I'm not sure what happened, because we were just assuming that it couldn't occur. I guess that's UB. One of the tests in storage_folding actually broke this rule, but it didn't matter before because it never actually accessed the input. Storage folding needed adjusting because it incorrectly didn't even try to fold now that the bound seems to be pure (it's a .outer_min Variable, whereas before it was the get_min call referencing the outer bounds query result). | 22 March 2020, 22:15:15 UTC |
39a31b7 | David OK | 22 March 2020, 14:37:38 UTC | MAINT: fix linking with OpenMP using the modern CMake way. | 22 March 2020, 14:37:38 UTC |
d397e34 | Andrew Adams | 21 March 2020, 20:37:23 UTC | Merge pull request #4774 from halide/simplify_likely_min Simplifier improvements from #3037 | 21 March 2020, 20:37:23 UTC |
d5a6d40 | Andrew Adams | 21 March 2020, 18:32:01 UTC | Merge remote-tracking branch 'origin/master' into mux_tuple | 21 March 2020, 18:32:01 UTC |
5fb418b | Andrew Adams | 21 March 2020, 18:07:29 UTC | Merge pull request #4773 from halide/faster_add_image_checks Speed up add_image_checks | 21 March 2020, 18:07:29 UTC |
0df48e4 | Sean Lee | 21 March 2020, 00:10:48 UTC | Turn off the python_bindings build by default on Windows. It can be turned on with -DWITH_PYTHON_BINDINGS=On in the cmake command line. | 21 March 2020, 00:10:48 UTC |
30bb4f1 | Andrew Adams | 20 March 2020, 21:56:40 UTC | count instead of find | 20 March 2020, 21:56:40 UTC |
9777cf1 | Andrew Adams | 20 March 2020, 21:48:53 UTC | Add missing module name | 20 March 2020, 21:48:53 UTC |
e43c850 | Andrew Adams | 20 March 2020, 21:48:03 UTC | Fix python bindings | 20 March 2020, 21:48:03 UTC |
2a43241 | Andrew Adams | 20 March 2020, 21:26:33 UTC | Add two new select simplification rules | 20 March 2020, 21:26:33 UTC |
0cd347e | Andrew Adams | 20 March 2020, 21:26:22 UTC | Simplify min(likely(x), x) to x We were simplifying it to likely(x), which I believe is wrong. A likely marks which branch of the immediately containing min/max should be optimized for. Once it has been optimized for that, the likely should vanish. It's not supposed to be transitive to containing min/max nodes too. | 20 March 2020, 21:26:22 UTC |
136fce4 | Andrew Adams | 20 March 2020, 21:24:31 UTC | Track constant bounds of likely in simplifier | 20 March 2020, 21:24:31 UTC |
1e4887a | Andrew Adams | 20 March 2020, 21:24:16 UTC | Always remove dead let exprs in simplifier | 20 March 2020, 21:24:16 UTC |
3de1189 | Andrew Adams | 20 March 2020, 21:00:49 UTC | Speed up add_image_checks by pre-trimming down to the portion of the stmt that actually touches input/output buffers. On master, timing add_image_checks for a few apps: local_laplacian: 16ms lens_blur: 18ms interpolate: 11ms fft: 37ms On this branch: local_laplacian: 2.4ms lens_blur: 11ms interpolate: 3.5ms fft: 3.9ms This change was pulled from #3037 | 20 March 2020, 21:00:49 UTC |
7a4ba57 | Andrew Adams | 20 March 2020, 20:45:27 UTC | Add simplifications of min(x, y) < min(x, z), and similar In a comparison between two mins, if a term on one side dominates a term on the other, we can drop it. Consider: ``` min(x, y) < min(z, w) ``` First we'll assume we can statically prove w <= y (e.g. because they are equal). Then: ``` min(x, y) < min(z, w) = (x < min(z, w)) || (y < min(z, w)) = (x < min(z, w)) || (y < z && y < w) = (x < min(z, w)) || (y < z && false) = (x < min(z, w)) || false = x < min(z, w) ``` Alternatively if we can prove y < w ``` min(x, y) < min(z, w) = (min(x, y) < z) && (min(x, y) < w) = (min(x, y) < z) && (x < w || y < w) = (min(x, y) < z) && (x < w || true) = (min(x, y) < z) && true = min(x, y) < z ``` These rules were helpful #3037. Carving them out into a separate PR here. The basic form of them existed in the rule synthesis branch. I added variants with constants and more commutations. | 20 March 2020, 20:45:27 UTC |