https://github.com/halide/Halide

sort by:
Revision Author Date Message Commit Date
cfff9bb Merge branch 'master' into srj-bufcallwrap 31 August 2018, 21:33:31 UTC
10c4bbe Merge pull request #3251 from halide/op_table_bugs Fix type conversion bugs in associative ops table 29 August 2018, 00:23:30 UTC
792f7e0 Merge branch 'master' into op_table_bugs 28 August 2018, 21:05:45 UTC
3f8f48c Merge pull request #3249 from halide/srj-order Ensure calls to codegen() are well-ordered 28 August 2018, 20:08:50 UTC
d751ca1 Merge branch 'master' into srj-order 28 August 2018, 17:43:56 UTC
1604d13 Fix type conversion bugs in associative ops table 28 August 2018, 17:00:59 UTC
1e2169e Merge pull request #3243 from halide/srj-addus Add LL helpers for paddus/psubus on LLVM8.0+ 28 August 2018, 17:00:04 UTC
72f9758 Merge pull request #3250 from inazarenko/skip_stages Don't skip stages that produce values of some other func. 28 August 2018, 16:36:30 UTC
ea88418 Merge pull request #3248 from halide/rvar_reorder_only_prove_assoc_if_needed Change RVar reordering code to not do associativity/commutativity 28 August 2018, 02:54:05 UTC
8b0bb22 Ensure calls to codegen() are well-ordered C++11 doesn't guarantee that function arguments are evaluated in a particular order, thus calls of the form builder->CreateFoo(codegen(a), codegen(b)) might generate LLVM IR with either a-then-b or b-then-a; at best, this makes comparing IR between compilers a nuisance; at worst, it can trigger subtle bugs and make them harder to find (see #3203). This PR looks for all calls that evalutate codegen() more than once as a function arg and rearranges code to use temporaries to ensure a well-defined order. (Note that a few with only a single call to codegen() were also pulled into temporaries where I thought it improved clarity or helped forestall reinsertion of the bad code pattern by future edits.) 27 August 2018, 23:37:22 UTC
2956ee6 Don't skip stages that produce values of some other func. When determining whether it's safe to skip producing a func, consider stores to non-local buffers of other funcs inside the Producer stage. The predicate for skipping the computation must imply that conditions around those stores are false. 27 August 2018, 22:50:45 UTC
7b3e2b7 Temporarily disable some tests in simd_op_check 27 August 2018, 21:49:01 UTC
79ae87f Change RVar reordering code to not do associativity/commutativity proof if it is not needed for a particular reordering. The proof is somewhat expensive and also results in possibly infinite loops on some pieces of code so running it all the time is problematic. 27 August 2018, 21:00:21 UTC
35544ab Merge pull request #3241 from halide/another_buffer_copy_fix Fix cases where halide_buffer_copy could copy to/from a NULL host pointer... 27 August 2018, 18:25:41 UTC
99cdb03 Add LL helpers for paddus/psubus on LLVM8.0+ Needed to work properly with https://reviews.llvm.org/D46179#1211902; unfortunately this patch is (still) broken by https://bugs.llvm.org/show_bug.cgi?id=38691, and probably shouldn't land until that is resolved. Posting here as a PR to capture the work-in-progress, but not really ready to review yet. 27 August 2018, 18:11:17 UTC
7701abe Fix cases where halide_buffer_copy could copy to/from a host pointer that was NULL where the case was valid by compying from the device allocation. Add tests for these cases. Change name of do_multidimensional_copy in opencl and cuda runtimes to be unique to each runtime as the opencl runtime was calling the cuda do_multidimensional_copy despite both being in anonymous namespaces inside their respective files. Weak linking and C++ namespaces and our unusual runtime linking and probably at least one bug somewhere caused this to go badly. Required trying to use both cuda and opencl at the same time. 27 August 2018, 09:04:43 UTC
1e69e8b Merge pull request #3238 from halide/empty_pipeline_bound Ignore function with empty pipeline bounds when creating partitioner 24 August 2018, 18:31:23 UTC
5481f15 Merge pull request #2995 from halide/simplify_mod Add simplify rules for a modulo of a difference. 24 August 2018, 17:47:40 UTC
1f43e2f Merge pull request #3236 from halide/buffer_copy_fix Fix halide_buffer_copy crash introduced by latest changes for host to… 24 August 2018, 17:35:20 UTC
f44f2df Merge pull request #3237 from halide/avx_512_alignment Move x86 to 64-byte alignment because of AVX-512. 24 August 2018, 17:33:04 UTC
0e6a58d Move x86 to 64-byte alignment because of AVX-512. 24 August 2018, 06:30:03 UTC
e0d693f Fix halide_buffer_copy crash introduced by latest changes for host to host copy. Add a test to cover this simple case. 24 August 2018, 06:14:36 UTC
e1f1408 Ignore function with empty pipeline bounds when creating partitioner 23 August 2018, 23:00:19 UTC
fd1b76f Merge pull request #3176 from halide/buffer_copy_improvements Buffer copy improvements 23 August 2018, 22:56:30 UTC
14a4ae3 Merge branch 'master' into buffer_copy_improvements 23 August 2018, 19:55:59 UTC
9d97eaa Merge pull request #3233 from zanbri/acquire_release_cuda_context_bug Incorrect acquire_context and release_context function names in test script 23 August 2018, 19:54:31 UTC
f9d3254 Fixed acquire_release_bug: issue #3232 23 August 2018, 16:49:51 UTC
0cb5825 Address review feedback. This makes an error condition actually return an error in one case as well. 22 August 2018, 23:37:09 UTC
d9973ca Merge branch 'master' into buffer_copy_improvements 22 August 2018, 23:20:38 UTC
2e48dad sync the test format to #2996 21 August 2018, 19:51:41 UTC
ee3b29d Merge branch 'master' into simplify_mod 21 August 2018, 19:41:45 UTC
4518a15 Merge pull request #3224 from halide/reorder_rvar Support reordering RVar if a function is associative. 21 August 2018, 17:38:23 UTC
f571a02 Merge pull request #3226 from halide/bug_inline_unbounded Fix inlining unbounded functions 21 August 2018, 16:13:47 UTC
4e716a5 Merge pull request #3222 from inazarenko/fix_scope Sync ScopedBinding<void> to the main template. 21 August 2018, 06:44:17 UTC
a5b0ab4 Check commutativity. 20 August 2018, 21:22:22 UTC
37637fe Fix inlining unbounded functions 20 August 2018, 20:02:29 UTC
3ca81a2 Support reordering Rvars of associative functions. 20 August 2018, 18:08:39 UTC
83fa9aa Sync ScopedBinding<void> to the main template. Adds a constructor that allows to skip binding the name, which is already present for other types, but not in the specialization for void. 16 August 2018, 20:20:38 UTC
390880e Merge branch 'master' into buffer_copy_improvements 16 August 2018, 19:27:18 UTC
1ec2340 Provide Hexagon buffer copy implementation. 15 August 2018, 01:19:56 UTC
b225e0d Merge pull request #3219 from halide/revert-3212-srj-codegen Revert "Ensure calls to codegen() are well-ordered" 14 August 2018, 22:43:00 UTC
50f4a13 Revert "Ensure calls to codegen() are well-ordered" 14 August 2018, 22:10:22 UTC
29ba9d2 Merge pull request #3212 from halide/srj-codegen Ensure calls to codegen() are well-ordered 14 August 2018, 21:58:53 UTC
5f30b05 Merge branch 'master' into buffer_copy_improvements 14 August 2018, 19:24:02 UTC
e5d3125 Merge pull request #3217 from halide/srj-tidy Hygiene: move nontrivial Target method bodies into .cpp file 14 August 2018, 18:17:27 UTC
d853dc7 Merge branch 'master' into buffer_copy_improvements 14 August 2018, 06:27:31 UTC
ad5e27d Change buffer_copy approach to put more of the decomposition logic in device_interface. Avoids recursive callbacks from the device backend to the device independent code. (Previously infinite recursion could occur in some cases.) Add tests coverage for halide_device_copy. Still need to handle device APIs that don't yet have support for buffer copy. Probably need to add a bit more documentation for halide_buffer_copy. 14 August 2018, 06:24:45 UTC
51895c9 Hygiene: move nontrivial Target method bodies into .cpp file Not at all important, but some of these methods have grown pretty long over the years. 13 August 2018, 22:44:29 UTC
47203ba Merge pull request #3216 from halide/srj-sf Special-case strict_float in Bounds.cpp to avoid n^2 behavior 13 August 2018, 21:17:48 UTC
c273948 Merge branch 'master' into srj-codegen 13 August 2018, 19:50:58 UTC
e538132 Reorder code 13 August 2018, 19:49:57 UTC
5c19d27 Special-case strict_float in Bounds.cpp to avoid n^2 behavior 13 August 2018, 18:32:34 UTC
c4dc874 Merge pull request #3213 from halide/srj-select Remove special-case for int32 from CodeGen_LLVM::visit(const Select *op) 11 August 2018, 22:28:15 UTC
6977295 Merge pull request #3105 from halide/unsafe_promises Add unsafe promises feature. 11 August 2018, 18:06:06 UTC
57120fc Merge branch 'master' into unsafe_promises 11 August 2018, 00:02:25 UTC
f981846 Reorder to to be closer to original 10 August 2018, 23:06:46 UTC
a915469 Remove special-case for int32 from CodeGen_LLVM::visit(const Select *op) LLVM circa v3.2 or so had a bug wherein complex pipeline would compile extremely slowly, so a workaround was inserted; I can't replicate this as of LLVM5 or later (which is all we are supporting now), so let's consider backing out this workaround. 10 August 2018, 19:40:30 UTC
6d61433 Ensure calls to codegen() are well-ordered C++11 doesn't guarantee that function arguments are evaluated in a particular order, thus calls of the form `builder->CreateFoo(codegen(a), codegen(b))` might generate LLVM IR with either a-then-b or b-then-a; at best, this makes comparing IR between compilers a nuisance; at worst, it can trigger subtle bugs and make them harder to find (see https://github.com/halide/Halide/issues/3203). This PR looks for all calls that evalutate codegen() more than once as a function arg and rearranges code to use temporaries to ensure a well-defined order. (Note that a few with only a single call to codegen() were also pulled into temporaries where I thought it improved clarity or helped forestall reinsertion of the bad code pattern by future edits.) 10 August 2018, 19:17:15 UTC
11eccdc Merge branch 'master' into srj-bufcallwrap 10 August 2018, 17:49:47 UTC
8c2f090 Merge pull request #3199 from halide/srj-rt-11 Explicitly specify -std=gnu++98 for runtime .cpp building 10 August 2018, 17:04:45 UTC
b83d7e7 Merge pull request #3205 from halide/kamil/coverity_issue Appease Coverity 10 August 2018, 13:59:18 UTC
3dfadd9 Merge pull request #3204 from halide/fix_comment Fix a typo in comment. 10 August 2018, 05:46:50 UTC
fff31fc Add comment 09 August 2018, 22:54:27 UTC
c221f45 fix test_internal 09 August 2018, 22:15:00 UTC
25dedcf Merge pull request #3184 from halide/gpu_types_for_kernel_run Add support for passing typecode, not just size, in args to GPU kernel run routine. 09 August 2018, 22:10:48 UTC
bd083e4 Fix buffer naming for C backend 09 August 2018, 21:56:12 UTC
b715d75 Add optional wrappers to AOT headers to Halide::Runtime::Buffers as inputs Note that this provides two distinct overload styles (well, three really): - pass-by-ref (with inputs declared as both <T> and <const T> for convenience `int foo(Buffer<T> &input, Buffer<T> &output);` `int foo(Buffer<const T> &input, Buffer<T> &output);` - "google-style", for clients constrained to the Google C++ Style Guide: `int foo(const Buffer<T> &input, Buffer<T> *output);` Note that the 'google-style' adds an assert and treats device-and-flags as mutable. 09 August 2018, 21:47:02 UTC
890df56 Appease Coverity 09 August 2018, 20:43:47 UTC
a20a60a Fix a typo in comment. 09 August 2018, 18:06:27 UTC
7ddda78 Merge pull request #3201 from halide/expr_uses_var Add an argument of a scope of variable binding to expr_uses_var. 09 August 2018, 04:43:30 UTC
27f4deb pass scope argument. 09 August 2018, 00:03:10 UTC
68a316b Add an argument of scope of variable binding to stmt_uses_var. 09 August 2018, 00:00:43 UTC
e5aecbe Explicitly specify -std=gnu++98 for runtime .cpp building We don't want c++11, as we don't want static locals to get thread-sync helper code (which c++11 mandates); previously, we didn't specify any version, which left us at the mercy of the system compiler (which might have defaulted to c++11). Choosing gnu++98 is arbitrary but gives us a predictable baseline across common build environments. 08 August 2018, 01:04:48 UTC
7049c1b Merge branch 'master' into buffer_copy_improvements 07 August 2018, 22:41:40 UTC
793734e Address review feedback. 07 August 2018, 19:30:21 UTC
2caad82 Merge branch 'master' into gpu_types_for_kernel_run 07 August 2018, 19:17:29 UTC
ea9c863 Merge pull request #3195 from halide/srj-uint64 call to halide_hexagon_run(): arg_sizes should be uint64*, not size_t* 07 August 2018, 17:19:49 UTC
9c53d76 Merge pull request #3196 from halide/srj-stable Use std::stable_sort in LoopCarry 07 August 2018, 17:19:37 UTC
ddb1619 Use std::stable_sort in LoopCarry This is really just for debugging hygiene: use of std::sort means that chains of same length can be in different orders in different C++ compilers; this doesn't appear to affect correctness of output, but having the sort be stable does make comparing IR from different compiler versions easier. 06 August 2018, 21:39:18 UTC
e21e61a call to halide_hexagon_run(): arg_sizes should be uint64*, not size_t* 06 August 2018, 17:43:08 UTC
1289ad3 Merge pull request #3190 from halide/srj-foreach2 Make Buffer::for_each_value const-correct 03 August 2018, 22:27:18 UTC
a7215a6 Make Buffer::for_each_value const-correct Declare it const, then add perfect-forwarding to some helper methods; this allows us to call it on `const Buffer<T>` (which are fine to mutate if T is not const) and also `Buffer<const T>` (which are now correctly prohibited from mutating the values via nonconst reference args to the lambda). 03 August 2018, 18:25:35 UTC
0b97b66 Appease compiler pedantry. 02 August 2018, 23:31:33 UTC
6704b56 Fix plain-C issue in HalideRuntimeOpenGLCompute.h . 02 August 2018, 18:58:44 UTC
366f949 Merge pull request #3041 from matthiaskramm/ctlsz Make CodeGen_C aware of count_leading_zeros 02 August 2018, 17:36:59 UTC
fd47a65 Merge pull request #3118 from SanderVocke/disable_leakcheck Disable asan leak checking during code generation. 02 August 2018, 17:16:35 UTC
2101955 Merge pull request #3173 from halide/srj-copy-as Add some HalideBuffer convenience methods (Issue #3113) 02 August 2018, 16:48:42 UTC
2e7fb15 Merge pull request #3172 from halide/fix_warp_shuffles Fix some pathological behavior in warp shuffles 02 August 2018, 15:19:52 UTC
aa70aaa Merge pull request #3183 from halide/bump_llvm_version LLVM is bumping their version number to 8 01 August 2018, 23:58:33 UTC
d8adc1d Fixes for review comments. 01 August 2018, 23:49:33 UTC
6c3d30b Change copy() to just return nonconst 01 August 2018, 23:08:18 UTC
6ca35a9 Add support for passing typecode insitead of just size with args to GPU kernel run routine. Eventually all GPU runtimes should probably use this one mechanism, but for now it is made optional per backedn to prevent breaking applications which have replaced the weak linked kernel run routine for a given API. OpenGL Compute is switched to the types based model as it was previously broken for types other than int32_t. Remove tabs in some files. 01 August 2018, 22:55:56 UTC
e0316d1 Remove nonstatic make_with_shape_of() 01 August 2018, 22:43:58 UTC
d8917c4 Some build bots don't have the requisite cuda version 01 August 2018, 22:17:50 UTC
ac129fe LLVM is bumping their version number to 8 01 August 2018, 22:00:29 UTC
05683a8 Merge branch 'master' into buffer_copy_improvements 01 August 2018, 18:27:37 UTC
f39ea35 Merge remote-tracking branch 'origin/master' into fix_warp_shuffles 01 August 2018, 18:12:42 UTC
8c772dd Merge pull request #3165 from halide/quieter_test_correctness only report failures in test_correctness 01 August 2018, 17:26:01 UTC
0122fd7 Merge remote-tracking branch 'origin/master' into disable_leakcheck 01 August 2018, 11:13:40 UTC
92a16ea Merge pull request #3177 from halide/readme_update Update README.md to reflect a slightly more current version of target support. 01 August 2018, 01:05:52 UTC
back to top