19618ee | Z Stern | 17 April 2018, 18:37:55 UTC | Add missing runtime dependency for iOS. | 17 April 2018, 18:37:55 UTC |
654fbfb | Steven Johnson | 17 April 2018, 17:02:21 UTC | Merge pull request #2887 from halide/srj-trace-config-partial Rework FuncConfig to allow merging/optional fields | 17 April 2018, 17:02:21 UTC |
dc5116c | Steven Johnson | 17 April 2018, 16:59:34 UTC | Merge pull request #2893 from halide/srj-py Overload __nonzero__ and __bool__ to help catch misused and/or (Issue #2889) | 17 April 2018, 16:59:34 UTC |
5e1773b | Steven Johnson | 17 April 2018, 01:54:10 UTC | Merge pull request #2894 from halide/srj-det Remove threading from compile_multitarget | 17 April 2018, 01:54:10 UTC |
77d7090 | Steven Johnson | 17 April 2018, 00:12:38 UTC | Merge pull request #2892 from halide/srj-and initialize unique_name_counters to zero | 17 April 2018, 00:12:38 UTC |
fe0a2a0 | Steven Johnson | 16 April 2018, 21:47:15 UTC | Tweak error message | 16 April 2018, 21:47:15 UTC |
12464cd | Steven Johnson | 16 April 2018, 21:36:58 UTC | Fix bonehead copy/paste error | 16 April 2018, 21:36:58 UTC |
d95d17f | Steven Johnson | 16 April 2018, 21:32:18 UTC | Remove threading from compile_multitarget This helped build throughput a little bit, but can introduce a subtle nondeterminism in multitarget builds: different unique_names can be chosen if the modules are built in different order, since the unique_name_counters global is never reset; build tooling that looks for nondeterminism in builds will (rightly) occasionally find it here. Since the performance improvement from this threading was modest in the first place, just remove it entirely. | 16 April 2018, 21:32:18 UTC |
54400eb | Steven Johnson | 16 April 2018, 21:19:37 UTC | Overload __nonzero__ and __bool__ to help catch misused and/or | 16 April 2018, 21:19:37 UTC |
e44a3a4 | Steven Johnson | 16 April 2018, 20:53:14 UTC | initialize unique_name_counters to zero If I read the spec correctly, std::atomic<> default ctor doesn't promise any initialization; if we leave these as-is, we can get different uniquenames from build to build, leading to trivially differing build results that upset some build correctness checks. | 16 April 2018, 20:53:14 UTC |
5d0eece | Steven Johnson | 16 April 2018, 17:23:00 UTC | Set uninitialized_memory_color alpha after final config cleanup | 16 April 2018, 17:23:00 UTC |
d90e864 | Steven Johnson | 16 April 2018, 17:20:10 UTC | Use INT_MIN rather than -1 for pos default | 16 April 2018, 17:20:10 UTC |
3bcf24c | Steven Johnson | 13 April 2018, 18:48:26 UTC | Merge pull request #2886 from halide/srj-irm Convert ExtractRegisterAllocations to IRMutator2 | 13 April 2018, 18:48:26 UTC |
df9da59 | Steven Johnson | 12 April 2018, 22:55:39 UTC | Rework FuncConfig to allow merging/optional fields The goal here is to allow some-but-not-all fields in FuncConfig to be specified, so that we can override some-but-not-all aspects of a visualization. As it is, this means you can specify a FuncConfig via a trace-tag, then tweak/override values via --flag values without having to rebuild/rerun the Halide generation code. This will become especially useful after auto-layout for visualizers is put into place, as that will allow you to just use auto-layout to get a rough visualization, and then (if desired) tweak it piece-by-piece (by adding trace-tag and/or --flags) to get a pleasing layout. Note that I implemented the structs by using 'magic invalid values'; a perhaps-cleaner-but-more-expensive approach would be to have each field allocated by std::unique_ptr, with nullptr meaning "not set"; I rejected that because it makes setting each field considerably more awkward. (To the Googlers watching: yes, mergeable-structs-with-optional-fields sounds a lot like protobufs; no, we're not bringing in protobufs just to accomplish this.) | 12 April 2018, 22:55:39 UTC |
0e099e5 | Steven Johnson | 12 April 2018, 20:31:23 UTC | Remove config.auto_label | 12 April 2018, 20:31:23 UTC |
3ab1402 | Steven Johnson | 12 April 2018, 20:15:51 UTC | Convert ExtractRegisterAllocations to IRMutator2 Also use ScopedBinding and ScopeValue helpers as appropriate | 12 April 2018, 20:15:51 UTC |
4781ace | Steven Johnson | 12 April 2018, 20:05:31 UTC | Merge pull request #2861 from halide/srj-legacy Add Target::LegacyBufferWrappers feature | 12 April 2018, 20:05:31 UTC |
51275bd | Steven Johnson | 12 April 2018, 19:14:49 UTC | Merge pull request #2884 from halide/gcc_linker_stderr Apparently some versions of gcc/ld output the linked object file list… | 12 April 2018, 19:14:49 UTC |
2a31548 | Steven Johnson | 12 April 2018, 18:08:37 UTC | Merge pull request #2879 from halide/srj-ttg Add trace_tag for 'global' visualization params | 12 April 2018, 18:08:37 UTC |
47ce2e5 | Steven Johnson | 12 April 2018, 18:06:02 UTC | Merge branch 'master' into srj-ttg | 12 April 2018, 18:06:02 UTC |
e2c9b4c | Steven Johnson | 12 April 2018, 17:55:24 UTC | Merge pull request #2881 from halide/srj-htvclean Convert Label::pos to be an offset from Func's position (rather than absolute) | 12 April 2018, 17:55:24 UTC |
71bbd72 | Steven Johnson | 12 April 2018, 16:37:39 UTC | Merge pull request #2883 from halide/srj-1d Tweak HTV to render 1d and 0d Funcs properly | 12 April 2018, 16:37:39 UTC |
b4c3dfa | Steven Johnson | 12 April 2018, 16:37:03 UTC | Add clarifying comment | 12 April 2018, 16:37:03 UTC |
e4d9a3c | Andrew Adams | 12 April 2018, 15:02:37 UTC | Apparently some versions of gcc/ld output the linked object file list to stderr | 12 April 2018, 15:02:37 UTC |
b2f9d37 | Steven Johnson | 12 April 2018, 01:29:02 UTC | Move 1d example from local-laplacian to camera-pipe | 12 April 2018, 01:29:02 UTC |
a42434d | Steven Johnson | 11 April 2018, 23:02:49 UTC | Tweak HTV to render 1d and 0d Funcs properly Add a visualization for the remap LUT in local_laplacian to test/demonstrate. (I verified locally the 0d Funcs also work, but am not including a demonstration.) | 11 April 2018, 23:02:49 UTC |
a73baca | Steven Johnson | 11 April 2018, 21:40:27 UTC | Convert Label::pos to be an offset from Func's position (rather than absolute) | 11 April 2018, 21:40:27 UTC |
10c552a | Dillon Sharlet | 11 April 2018, 18:54:16 UTC | Merge pull request #2829 from suyogsarda/more_hvx_level Support more hvx power levels | 11 April 2018, 18:54:16 UTC |
2a39216 | Suyog Sarda | 21 March 2018, 12:32:56 UTC | Support more hvx power levels Ensure backward compatibility too. | 11 April 2018, 17:56:20 UTC |
ac465f3 | Steven Johnson | 11 April 2018, 16:47:54 UTC | Process command-line after trace_tags This allows us to use the commandline flags to override per-func (or global) data specified via trace-tag; this allows for easier experimentation via the commandline. | 11 April 2018, 16:47:54 UTC |
e20d51b | Pranav Bhandarkar | 11 April 2018, 15:31:41 UTC | Merge pull request #2871 from halide/pdb_fast_sync_multiple_defs Fix multiple definitions in fast synchronization | 11 April 2018, 15:31:41 UTC |
9ecba9f | Steven Johnson | 10 April 2018, 22:40:12 UTC | Add trace_tag for 'global' visualization params This allows us to set (e.g.) timestep or framesize via trace_tags in the code, rather than command-line flags. Note that this is of limited use at present, as the existing flags tend to be sensitive to input data and thus may be better specified on the command line; however, this provides a good mechanism to specify future params related to automatic layout. | 10 April 2018, 22:40:12 UTC |
b42a01a | Pranav Bhandarkar | 10 April 2018, 21:48:41 UTC | In apps/hexagon_benchmarks/adb_run_on_device.sh, do not do "make clean" always. Instead, check the return value of the make command so as to ensure that in the event of a build failure stale binaries are not pushed to the device. | 10 April 2018, 21:48:41 UTC |
99fca2c | Steven Johnson | 10 April 2018, 16:50:05 UTC | Merge pull request #2873 from halide/srj-strict Bounds calculations needs to understand strict_float | 10 April 2018, 16:50:05 UTC |
31b564f | Andrew Adams | 10 April 2018, 14:30:24 UTC | Merge pull request #2874 from halide/fix-alignment Plumb alignment of closure params to AlignLoads | 10 April 2018, 14:30:24 UTC |
74ac746 | Dillon Sharlet | 10 April 2018, 04:39:41 UTC | Fix alignment ;) | 10 April 2018, 04:39:41 UTC |
5d96847 | Dillon Sharlet | 10 April 2018, 04:35:35 UTC | Plumb alignment of closure params to AlignLoads. | 10 April 2018, 04:35:35 UTC |
1f5996a | Andrew Adams | 10 April 2018, 01:58:34 UTC | Merge pull request #2870 from halide/libtinfo libtinfo fix for some ubuntu systems | 10 April 2018, 01:58:34 UTC |
be32f6a | Steven Johnson | 10 April 2018, 00:38:35 UTC | Fix TODOs | 10 April 2018, 00:38:35 UTC |
ce87973 | Steven Johnson | 10 April 2018, 00:37:25 UTC | Add test case | 10 April 2018, 00:37:25 UTC |
173de61 | Steven Johnson | 10 April 2018, 00:19:51 UTC | Bounds calculations needs to understand strict_float Bounds(Call) assumes the worst for calls it doesn't know about, so strict_float(foo) becomes (neg_inf, pos_inf) rather than (foo, foo) (a la 'likely'), exploding bounds checking. Note 1: this needs a test to be written; I haven't done so yet because I'm puzzled as to how this isn't covered in our existing tests (it was found inside Google code). Note 2: it's possible that some of the other 'likely' special cases need special-casing here too; I'm not familiar enough with the Bounds code to have decided whether that's the case or not. (The fix "as-is" here fixes the cases I know about.) | 10 April 2018, 00:19:51 UTC |
08e6b6d | Steven Johnson | 09 April 2018, 23:29:28 UTC | Merge pull request #2867 from halide/tracetag3 Use add_trace_tag() to allow sending layout info to HalideTraceViz | 09 April 2018, 23:29:28 UTC |
482cb76 | Pranav Bhandarkar | 09 April 2018, 21:11:43 UTC | In synchronization_common.h forward declare some functions so that they can be used inside definition of member functions that are inside struct/class definitions. This should ensure we do not create COMDAT sections for weak functions. | 09 April 2018, 21:11:43 UTC |
cadd908 | Steven Johnson | 09 April 2018, 20:51:08 UTC | remove dependency | 09 April 2018, 20:51:08 UTC |
2c18911 | Steven Johnson | 09 April 2018, 18:54:00 UTC | Add prefix to FuncConfig trace_tag format This will allow us to add a few more trace_tags intended for HTV without decoding difficulty | 09 April 2018, 18:54:00 UTC |
ecc89db | Steven Johnson | 09 April 2018, 18:26:08 UTC | Add missing #include | 09 April 2018, 18:26:08 UTC |
073a3ca | Steven Johnson | 09 April 2018, 18:24:45 UTC | Merge branch 'master' into tracetag3 | 09 April 2018, 18:24:45 UTC |
ae0d204 | Steven Johnson | 09 April 2018, 17:54:04 UTC | Require legacy_buffer_wrapper for define_extern(old_buffer_t=true) | 09 April 2018, 17:54:04 UTC |
8320d85 | Pranav Bhandarkar | 09 April 2018, 16:52:46 UTC | In hexagon_benchmarks, clean before building | 09 April 2018, 16:52:46 UTC |
9c215e9 | Pranav Bhandarkar | 09 April 2018, 16:51:09 UTC | Declare class member functions defined out-of-line as weak. Some other functions need to be weak as well. | 09 April 2018, 16:51:09 UTC |
25574fd | Andrew Adams | 08 April 2018, 18:43:55 UTC | Merge pull request #2864 from halide/move_simplify_tests Move the simplifier tests out of libHalide | 08 April 2018, 18:43:55 UTC |
7a6a069 | Andrew Adams | 08 April 2018, 18:09:15 UTC | libtinfo fix for some ubuntu systems | 08 April 2018, 18:09:15 UTC |
0f8b980 | Steven Johnson | 06 April 2018, 23:47:32 UTC | Use add_trace_tag() to allow sending layout info to HalideTraceViz This is essentially a revised version of #2838, but instead of attempting to replicate the flags 'language', we instead expose the the Config struct (via a shared header), and serialize/deserialize it into a trace_tag that HTV can interpret. As proof-of-concept, it converts apps/bilateral_grid and apps/local_laplacian to use trace_tags instead of command-line args. (We may or may not want those changes to land as part of this PR.) (Note that this doesn't provide a way to set global flags such as `--timestamp`; those could be added in the future via another struct.) | 06 April 2018, 23:47:32 UTC |
01cdce1 | Andrew Adams | 06 April 2018, 21:28:43 UTC | Add missing EXPORT | 06 April 2018, 21:28:43 UTC |
06d8d62 | Steven Johnson | 06 April 2018, 18:49:03 UTC | Merge pull request #2865 from halide/headers_fix Header file fixes per sanitizer feedback from within Google. | 06 April 2018, 18:49:03 UTC |
abfbbe0 | Andrew Adams | 06 April 2018, 15:00:16 UTC | Comments | 06 April 2018, 15:00:16 UTC |
947caab | Zalman Stern | 06 April 2018, 00:57:06 UTC | Header file fixes per sanitizer feedback from within Google. | 06 April 2018, 00:57:06 UTC |
525cb53 | Andrew Adams | 05 April 2018, 22:08:48 UTC | Slight reorg | 05 April 2018, 22:08:48 UTC |
b8a5454 | Andrew Adams | 05 April 2018, 22:00:46 UTC | Remove dead code | 05 April 2018, 22:00:46 UTC |
2e755c0 | Steven Johnson | 05 April 2018, 21:50:15 UTC | Merge pull request #2863 from halide/srj-tracetag Fix rendering glitches in HTV | 05 April 2018, 21:50:15 UTC |
9dbe1a4 | Andrew Adams | 05 April 2018, 21:41:56 UTC | Add missing Halide:: | 05 April 2018, 21:41:56 UTC |
d9cd3ae | Steven Johnson | 05 April 2018, 21:05:57 UTC | Clarified comment | 05 April 2018, 21:05:57 UTC |
a9053e8 | Andrew Adams | 05 April 2018, 20:56:47 UTC | Move the simplifier tests out of libHalide Simplify.cpp is too large, and the simplifier tests don't use any internal functionality anyway. The contents of simplify.cpp is copy-pasted from Simplify.cpp in master. | 05 April 2018, 20:56:47 UTC |
033ed08 | Steven Johnson | 05 April 2018, 20:54:48 UTC | Remove mistakenly added file | 05 April 2018, 20:54:48 UTC |
c97634c | Steven Johnson | 05 April 2018, 20:38:25 UTC | legacy_wrappers -> legacy_buffer_wrappers | 05 April 2018, 20:38:25 UTC |
57182f1 | Zalman Stern | 05 April 2018, 19:06:53 UTC | Merge pull request #2752 from halide/fast_synchronization Fast synchronization | 05 April 2018, 19:06:53 UTC |
1b730a6 | Steven Johnson | 05 April 2018, 17:01:07 UTC | Merge branch 'master' into srj-tracetag | 05 April 2018, 17:01:07 UTC |
2e76a73 | Steven Johnson | 05 April 2018, 17:00:43 UTC | Fix rendering glitches in HTV - Labels that fade in could get rendering incompletely (or not at all) depending on ordering of trace packets due to threading; move all pending labels into a list and render as we go along to resolve this - first_draw_time and first_packet_index should have default values be -1, as zero is a legal value; this could lead to duplicate entries | 05 April 2018, 17:00:43 UTC |
c5269df | Steven Johnson | 05 April 2018, 16:58:31 UTC | Merge pull request #2857 from halide/srj-tracetag Add a few missing pieces for add_trace_tag() | 05 April 2018, 16:58:31 UTC |
b525868 | Steven Johnson | 05 April 2018, 15:55:46 UTC | Merge pull request #2858 from inazarenko/master Handle buffers that are both read and written. | 05 April 2018, 15:55:46 UTC |
49ab892 | Steven Johnson | 05 April 2018, 15:55:21 UTC | Merge pull request #2862 from halide/srj-inline Split NO_INLINE in two | 05 April 2018, 15:55:21 UTC |
d2bef3c | Steven Johnson | 05 April 2018, 01:03:43 UTC | Merge branch 'master' into srj-tracetag | 05 April 2018, 01:03:43 UTC |
d1a4065 | Steven Johnson | 05 April 2018, 00:40:42 UTC | Split NO_INLINE in two The current NO_INLINE macro actually means "don't inline if we are in user code, but if we are compiling Halide, do whatever". This PR adds a new HALIDE_NEVER_INLINE macro, which is the opposite of HALIDE_ALWAYS_INLINE: it never inlines code, period. (It is meant to be useful in header-only libraries like halide_image_io.h, where being able to specify some functions as never-inline can be a useful hint to the compiler.) The existing NO_INLINE macro is renamed to HALIDE_NO_USER_CODE_INLINE to more accurately reflect its meaning (and to give a HALIDE_ prefix to it, which it should have always had). | 05 April 2018, 00:40:42 UTC |
922ac6f | Steven Johnson | 05 April 2018, 00:19:40 UTC | Add Target::LegacyWrappers feature This disables the default generation of the classic 'buffer_t' wrapper code for AOT compilation; the code is still present, but must be deliberately opted in by using the new Target::LegacyWrappers flag when compiling. If you need to enable this flag for your code, you should strongly consider upgrading it to use halide_buffer_t instead (perhaps via the Halide::Runtime::Buffer<> class), as support for the classic 'buffer_t' struct will likely be removed at some point in the future. | 05 April 2018, 00:19:40 UTC |
b4d7933 | Steven Johnson | 04 April 2018, 23:54:40 UTC | Merge pull request #2855 from halide/srj-ub Fix more UB | 04 April 2018, 23:54:40 UTC |
40a51a9 | Steven Johnson | 04 April 2018, 23:46:18 UTC | Remove rogue 'dump' call | 04 April 2018, 23:46:18 UTC |
2aeeb70 | Steven Johnson | 04 April 2018, 23:08:13 UTC | Merge pull request #2856 from halide/srj-png Allow for compact-planar images with non-increasing strides | 04 April 2018, 23:08:13 UTC |
7d7d297 | Igor Nazarenko | 04 April 2018, 21:50:18 UTC | Handle buffers that are both read and written. At least one user of this class assumes that it's possible for a buffer in the scope to be both read and written: https://github.com/halide/Halide/blob/80a48bf501e53f6f6e6b419ba60dc4839f2862e1/src/HexagonOffload.cpp#L821 However, currently the last access always wins. | 04 April 2018, 21:56:52 UTC |
4a6b7b0 | Steven Johnson | 04 April 2018, 21:46:00 UTC | Add a few missing pieces for add_trace_tag() - ImageParam and Input<Buffer> need forwarding methods - Tracing.cpp didn't handle trace_all_loads and could have duplicates emitted, and didn't handle all Call nodes correctly - HalideTraceViz: process (but ignore) trace_tag nodes; dump the trace_tag to output; drive-by cleanup to emit Labels in verbose mode; drive-by fix to text fade-in calculation time | 04 April 2018, 21:46:00 UTC |
c56b114 | Steven Johnson | 04 April 2018, 18:13:46 UTC | Tweak safe_numeric_cast to match existing compiler behavior for uint->int | 04 April 2018, 18:13:46 UTC |
14d4cd4 | Z Stern | 04 April 2018, 17:50:59 UTC | Merge branch 'master' into fast_synchronization | 04 April 2018, 17:50:59 UTC |
fe2b67b | Steven Johnson | 04 April 2018, 17:15:45 UTC | Matching strides only require prev dim to be 1 | 04 April 2018, 17:15:45 UTC |
80a48bf | Steven Johnson | 04 April 2018, 00:51:38 UTC | Merge pull request #2849 from halide/kernhanda-halide_header Kernhanda halide header | 04 April 2018, 00:51:38 UTC |
e944cf8 | Steven Johnson | 04 April 2018, 00:14:02 UTC | Allow for compact-planar images with non-increasing strides this can happen when artificially adding dimension(s) of extent 1, e.g. to write a .tmp file, which requires exactly 4 dimensions | 04 April 2018, 00:14:02 UTC |
70652d2 | Z Stern | 03 April 2018, 22:51:22 UTC | Another change to thread pool init state logic. | 03 April 2018, 22:51:22 UTC |
11b26f2 | Steven Johnson | 03 April 2018, 21:07:38 UTC | safe_numeric_cast should handle UB int->int and uint->int also | 03 April 2018, 21:07:38 UTC |
fed1463 | Steven Johnson | 03 April 2018, 20:16:19 UTC | Update const_division to seed rng like fuzz_simplify does | 03 April 2018, 20:16:19 UTC |
7d34bd3 | Steven Johnson | 03 April 2018, 20:05:38 UTC | Fix weird indent | 03 April 2018, 20:05:38 UTC |
fbb5aad | Steven Johnson | 03 April 2018, 20:03:05 UTC | Fix more UB - Casting float->int is UB if the value won't fit in the destination; this fixes more cases found by running under UBSan. - const_division had a left-shift-out-of-bounds UB to generated random numbers; 'fixed' by replacing with std::mt19937, which is more stable for tests anyway - thread_safe_jit can overflow the int32 used for some calculations; int64 needed for intermediates | 03 April 2018, 20:03:05 UTC |
f9f41da | Kern Handa | 03 April 2018, 19:01:54 UTC | Use absolute path for LICENSE.txt | 03 April 2018, 19:01:54 UTC |
7c823a9 | Z Stern | 03 April 2018, 19:00:08 UTC | Add initializer to work_queue to try and force static initialization with zeroes. | 03 April 2018, 19:00:08 UTC |
fc24ea4 | Z Stern | 03 April 2018, 18:56:22 UTC | Remove thread local parking object caching support. Did not seem to matter for performance. Left a comment referencing the commit in case anyone needs it in the future. | 03 April 2018, 18:56:22 UTC |
6a1ea6d | Z Stern | 03 April 2018, 16:22:51 UTC | Fix logic error in routine which asserts proper initial state for work queue. Added a couple comments. | 03 April 2018, 16:22:51 UTC |
6f8aade | Z Stern | 03 April 2018, 02:04:48 UTC | Encapsulate some logic in work queue methods. Assert work queue is zeroed at init time instead of forcing it to be zero. All zeros is the default static init state and indicates no threads are waiting on condition variables as the fast_synchronization logic guarantees a zero value is the quiescent state for a mutex or condvar. Zero work queue at shutdown time to return it to proper initializations state. (And to reflect its actual state after threads are shutdown.) | 03 April 2018, 02:04:48 UTC |
25b8f70 | Steven Johnson | 03 April 2018, 00:57:00 UTC | Merge pull request #2854 from halide/srj-htv Fix signed/unsigned error in HalideTraceViz (Issue #2844) | 03 April 2018, 00:57:00 UTC |
7a5f182 | Steven Johnson | 03 April 2018, 00:56:30 UTC | Merge pull request #2853 from halide/srj-perf Modify test/performance to use get_test_tmp_dir() | 03 April 2018, 00:56:30 UTC |
626c2dd | Zalman Stern | 02 April 2018, 21:59:47 UTC | Merge pull request #2668 from halide/strict_floating_point_flag2 Redux of strict FP support. | 02 April 2018, 21:59:47 UTC |
454bd4c | Steven Johnson | 02 April 2018, 20:51:56 UTC | Fix signed/unsigned error in HalideTraceViz (Issue #2844) | 02 April 2018, 20:51:56 UTC |
67f82f4 | Steven Johnson | 02 April 2018, 20:46:10 UTC | Modify test/performance to use get_test_tmp_dir() This allows us to run more easily in Blaze/Bazel environments, where working directories are not writable, and running with a custom working directory is inconvenient. (It also conforms with all other tests which made this change long ago) | 02 April 2018, 20:46:10 UTC |
e3e22ca | Andrew Adams | 02 April 2018, 02:34:57 UTC | Merge branch 'master' into kernhanda-halide_header | 02 April 2018, 02:34:57 UTC |