swh:1:snp:70f530b74f5be73cfb71c212c9e3317ce44c1ebc
- HEAD
- refs/heads/Halide_unsharp
- refs/heads/abadams/aggressive_is_single_point
- refs/heads/abadams/align_strided_const_loads
- refs/heads/abadams/alloca
- refs/heads/abadams/atomic_parallel_compiled_in
- refs/heads/abadams/atomic_vector_non_recursive
- refs/heads/abadams/averaging_tree
- refs/heads/abadams/avoid_name_mangling_in_cross_module_dependencies
- refs/heads/abadams/better_absd
- refs/heads/abadams/better_codegen_for_non_const_ramps
- refs/heads/abadams/bgu_cholesky
- refs/heads/abadams/braces_around_statements
- refs/heads/abadams/cache_tighten_producer_consumer_nodes
- refs/heads/abadams/check_reorder_dups
- refs/heads/abadams/clarify_broadcast_shuffle
- refs/heads/abadams/compositing_app
- refs/heads/abadams/cond_wait_spin
- refs/heads/abadams/cse_in_unroll_split_tuples
- refs/heads/abadams/custom_cuda_context
- refs/heads/abadams/custom_cuda_context_2
- refs/heads/abadams/custom_cuda_context_3
- refs/heads/abadams/d3d12abi
- refs/heads/abadams/deflake_mullapudi_reorder
- refs/heads/abadams/delete_prepare_for_early_exit
- refs/heads/abadams/depthwise_separable_conv
- refs/heads/abadams/diagnose_boundary_condition_failure
- refs/heads/abadams/disable_onnx_app_on_mac
- refs/heads/abadams/divide_using_pavgw
- refs/heads/abadams/dont_link_to_cudart
- refs/heads/abadams/dont_reinterpret_concat
- refs/heads/abadams/early_out
- refs/heads/abadams/enable_f16c
- refs/heads/abadams/extract_concat_bits
- refs/heads/abadams/fast_integer_divide_round_to_zero
- refs/heads/abadams/faster_runtime_integer_division
- refs/heads/abadams/faster_substitute_facts
- refs/heads/abadams/faster_unroll
- refs/heads/abadams/fix-arm-seg2
- refs/heads/abadams/fix_4211
- refs/heads/abadams/fix_5323
- refs/heads/abadams/fix_5329
- refs/heads/abadams/fix_5889
- refs/heads/abadams/fix_6984
- refs/heads/abadams/fix_7229
- refs/heads/abadams/fix_7260
- refs/heads/abadams/fix_7365
- refs/heads/abadams/fix_7374
- refs/heads/abadams/fix_7504
- refs/heads/abadams/fix_7514
- refs/heads/abadams/fix_7531
- refs/heads/abadams/fix_7584
- refs/heads/abadams/fix_7584_v2
- refs/heads/abadams/fix_7742
- refs/heads/abadams/fix_7756
- refs/heads/abadams/fix_7761
- refs/heads/abadams/fix_7768
- refs/heads/abadams/fix_7786
- refs/heads/abadams/fix_7810
- refs/heads/abadams/fix_7811
- refs/heads/abadams/fix_7815
- refs/heads/abadams/fix_7867
- refs/heads/abadams/fix_7871
- refs/heads/abadams/fix_7872
- refs/heads/abadams/fix_7873
- refs/heads/abadams/fix_7888
- refs/heads/abadams/fix_7890
- refs/heads/abadams/fix_7891
- refs/heads/abadams/fix_7892
- refs/heads/abadams/fix_7893
- refs/heads/abadams/fix_7906
- refs/heads/abadams/fix_7909
- refs/heads/abadams/fix_7968
- refs/heads/abadams/fix_8038
- refs/heads/abadams/fix_8054
- refs/heads/abadams/fix_8170
- refs/heads/abadams/fix_8184
- refs/heads/abadams/fix_arm_fcvtmp
- refs/heads/abadams/fix_autoschedule_feature_transposition
- refs/heads/abadams/fix_cse_name_collisions
- refs/heads/abadams/fix_cuda_mat_mul_assert
- refs/heads/abadams/fix_deinterleave_bug
- refs/heads/abadams/fix_deinterleave_for_reinterpret
- refs/heads/abadams/fix_div_round_to_zero
- refs/heads/abadams/fix_fft_compile_time_regression
- refs/heads/abadams/fix_generate_output_snippets
- refs/heads/abadams/fix_if_nesting_condition
- refs/heads/abadams/fix_leaks_in_memoize_test
- refs/heads/abadams/fix_lgtm_warnings
- refs/heads/abadams/fix_links_to_master
- refs/heads/abadams/fix_load_of_broadcast
- refs/heads/abadams/fix_lossless_cast_of_sub
- refs/heads/abadams/fix_onnx_app
- refs/heads/abadams/fix_pointless_lower_condition
- refs/heads/abadams/fix_potential_gpu_deadlock
- refs/heads/abadams/fix_realize_condition_depends_on_tuple
- refs/heads/abadams/fix_reduce_expr_modulo_of_vector
- refs/heads/abadams/fix_riscv_vx_vi
- refs/heads/abadams/fix_round
- refs/heads/abadams/fix_stencil_chain_gpu_schedule
- refs/heads/abadams/fix_track_bounds_intervals
- refs/heads/abadams/fix_tutorial_2
- refs/heads/abadams/fix_ub_in_lower_rounding_shift_right
- refs/heads/abadams/forward_partition_methods
- refs/heads/abadams/fully_fused_depthwise_separable_conv
- refs/heads/abadams/fuzz_sliding_window
- refs/heads/abadams/gaussian_blur_app
- refs/heads/abadams/generator_infinite_default_timeout
- refs/heads/abadams/gpu_autoscheduler_parallel_random_probes
- refs/heads/abadams/include_riscv_in_readme
- refs/heads/abadams/interleave_nested_vector
- refs/heads/abadams/ir_match_by_ref
- refs/heads/abadams/lerp_plus_cast
- refs/heads/abadams/local_laplacian_code_size
- refs/heads/abadams/lower_halving_sub
- refs/heads/abadams/lower_rounding_shift_right
- refs/heads/abadams/mac-arm-fixes
- refs/heads/abadams/make_fast_inverse_test_throughput_limited
- refs/heads/abadams/makefile_serialization_support
- refs/heads/abadams/mismatched_new_delete
- refs/heads/abadams/mixed_sign_mul_shift_right
- refs/heads/abadams/mixed_width_mul_shift_right
- refs/heads/abadams/multiple_scatter
- refs/heads/abadams/mux_intrinsic
- refs/heads/abadams/name_helpers
- refs/heads/abadams/narrow_predicates
- refs/heads/abadams/nested_vectorization_compile_time_regression_fix
- refs/heads/abadams/nested_vectorization_tweaks
- refs/heads/abadams/parallel_simd_op_check
- refs/heads/abadams/per_instance_profiling
- refs/heads/abadams/precompute_shared_mem_size
- refs/heads/abadams/prefer_no_gather
- refs/heads/abadams/print_uncaught_exception
- refs/heads/abadams/promote_fixed_point_intrinsics
- refs/heads/abadams/psabdw
- refs/heads/abadams/random_pipelines
- refs/heads/abadams/rationalize_gpu_for_loop_names
- refs/heads/abadams/reenable_unscheduled_stage_warning
- refs/heads/abadams/refactor_constant_interval
- refs/heads/abadams/reinterpret_vector
- refs/heads/abadams/remove_arch_os_for_shaders
- refs/heads/abadams/remove_bad_pruning
- refs/heads/abadams/remove_parameter_self_references
- refs/heads/abadams/remove_readnone_on_functions
- refs/heads/abadams/remove_use_of_python_config_in_onnx_makefile
- refs/heads/abadams/reschedule_bgu
- refs/heads/abadams/reschedule_bilateral_grid
- refs/heads/abadams/rewrite_atomic_pass
- refs/heads/abadams/rewrite_ir_equality
- refs/heads/abadams/rounding_shift_right_use_average
- refs/heads/abadams/rungenmain_error
- refs/heads/abadams/sampling_profiler_overhead_v2
- refs/heads/abadams/scope_improvements
- refs/heads/abadams/simpler_broadcasts
- refs/heads/abadams/simplify_correlated_pyramid
- refs/heads/abadams/siotas_20
- refs/heads/abadams/sioutas_20
- refs/heads/abadams/slide_over_split_loop
- refs/heads/abadams/sorting_network_working_branch
- refs/heads/abadams/stable_topological_order
- refs/heads/abadams/string_view
- refs/heads/abadams/strip_asserts_last
- refs/heads/abadams/switch_stmt
- refs/heads/abadams/target_specific_lerp
- refs/heads/abadams/time_lowering_passes
- refs/heads/abadams/track_failedness_through_solver_lets
- refs/heads/abadams/turn_off_slp_vectorization_for_avx512
- refs/heads/abadams/tweak_unpack_buffers
- refs/heads/abadams/undo_pointless_widening
- refs/heads/abadams/unordered_blocks
- refs/heads/abadams/unsigned_demosaic
- refs/heads/abadams/update_makefile_for_llvm_19
- refs/heads/abadams/use_arm_for_runtime_triple
- refs/heads/abadams/use_pmaddubsw_for_downsample
- refs/heads/abadams/validate_gpu_schedules
- refs/heads/abadams/vector_reduce_hexagon_predicate
- refs/heads/abadams/vector_scan
- refs/heads/abadams/vst_type_fix
- refs/heads/abadams/widening_let_bug
- refs/heads/abadams/x86_avg
- refs/heads/abadams/zen4
- refs/heads/adadams/profile_allocator
- refs/heads/add_image_checks_after_bounds_inference_plus_new_rules
- refs/heads/add_outermost_to_extern
- refs/heads/add_vectorization_to_search_space
- refs/heads/aelphy/feature_cadence_changes
- refs/heads/aelphy/float_extracts
- refs/heads/align_loads_comment_fix
- refs/heads/alina-strided-store
- refs/heads/another_buffer_copy_fix
- refs/heads/arm_sve_redux
- refs/heads/ataei-block_asserts-codegen
- refs/heads/ataei-debug_info
- refs/heads/ataei-fix-pow
- refs/heads/ataei-gen_str_param
- refs/heads/ataei-implicit_lhs_vars
- refs/heads/ataei-onnx
- refs/heads/ataei-onnx_converter_update
- refs/heads/ataei-onnx_pybind
- refs/heads/ataei-resnet50_benchmarks
- refs/heads/ataei-standalone_autoscheduler
- refs/heads/ataei_lots_of_inputs
- refs/heads/auto_sched_benchmarks
- refs/heads/auto_sched_estimates
- refs/heads/auto_sched_inline
- refs/heads/auto_sched_test_notparallel
- refs/heads/autoschedule_top_down
- refs/heads/autoschedule_with_convnet
- refs/heads/autoscheduler_scalar_imageparam_fix
- refs/heads/backports/10.x
- refs/heads/backports/11.x
- refs/heads/backports/12.x
- refs/heads/backports/13.x
- refs/heads/balance_expressions
- refs/heads/bazel
- refs/heads/benchmarks
- refs/heads/blaze
- refs/heads/bounds_buffer_lets_fix
- refs/heads/bounds_correct_vs_bounds_loaded_reduced
- refs/heads/buffer_device_api_target
- refs/heads/bug_device_free
- refs/heads/bug_inline_unbounded
- refs/heads/build/fix-xcode-2
- refs/heads/build/manylinux-fixes
- refs/heads/circ_buffer
- refs/heads/cmake-no-runtime-debug-symbols
- refs/heads/cmake/asan
- refs/heads/cmake/deps-cleanup
- refs/heads/cmake/find-modules
- refs/heads/cmake/spirv
- refs/heads/cmake_wasm_features
- refs/heads/compute_at_guard_with_if_goes_on_stack
- refs/heads/compute_with_at
- refs/heads/compute_with_check
- refs/heads/compute_with_excessive_bounds
- refs/heads/compute_with_inlined
- refs/heads/compute_with_remove_is_right_level
- refs/heads/cpack/nuget
- refs/heads/ctest/wrappers
- refs/heads/cuda-constant
- refs/heads/d3d12-allocation-cache
- refs/heads/deferred_cse_after_inlining
- refs/heads/destructor_calls_deinit
- refs/heads/dg/deserialize_unmapped_objects
- refs/heads/dg/fix_vulkan_codegen_bool_conversion
- refs/heads/dg/vulkan_conform_api
- refs/heads/dg/vulkan_region_allocator_fixes
- refs/heads/dgerstmann/fix-vulkan-memory-config-init
- refs/heads/disable_acquire_release_test_vulkan
- refs/heads/distinct_wrapper_names
- refs/heads/dkg/6863_asan_fixes
- refs/heads/dkg/vulkan
- refs/heads/dpalermo_dmabuf
- refs/heads/dpalermo_dmabuf_libion
- refs/heads/dpalermo_hexagon_remote_202003
- refs/heads/dpalermo_sdk4_2_0_2
- refs/heads/ds/buffer-get-pure
- refs/heads/ds/opt-tile-size
- refs/heads/ds/tail-none
- refs/heads/ds/while
- refs/heads/dsharletg/bitwise-intrinsics
- refs/heads/dsharletg/find-vector-reduce
- refs/heads/dsharletg/jit-optimization
- refs/heads/dsharletg/memcpy-copy_from
- refs/heads/dsharletg/pattern-headroom
- refs/heads/dsharletg/refactor-host-alignment
- refs/heads/dsharletg/runtime-size
- refs/heads/dsharletg/simplify-abs
- refs/heads/dsharletg/simplify-type-bounds
- refs/heads/dsharletg/specialize-bounds
- refs/heads/dsharletg/upsample-channels
- refs/heads/empty_prefetch
- refs/heads/emscripten_vector_fix
- refs/heads/export_all-wsmoses
- refs/heads/expr_auto_sched
- refs/heads/extern_bugs
- refs/heads/extern_host_alloc
- refs/heads/factor_parallel_codegen_hack
- refs/heads/fast_sync_tsan
- refs/heads/faster_integer_division
- refs/heads/feature/apps-external
- refs/heads/feature/cmake-presets
- refs/heads/feature/convert
- refs/heads/feature/f16_interleave
- refs/heads/feature/gather_load_q7
- refs/heads/feature/llvm-codemodel
- refs/heads/feature/load_predicated
- refs/heads/feature/luma_regression
- refs/heads/feature/maintanence
- refs/heads/feature/reinterprets
- refs/heads/feature/tcm_bump_allocator
- refs/heads/feature/xtensa_fix_interleave_q8
- refs/heads/feature/xtensa_q8_tests
- refs/heads/find_intrinsics_issue
- refs/heads/find_intrinsics_widening_lets
- refs/heads/fix-floated-pure-stage
- refs/heads/fix-race-condition
- refs/heads/fix_hexagon_alignment
- refs/heads/fix_hvx_intrinsics
- refs/heads/fix_prefetch_test
- refs/heads/fix_windows_vs15_build
- refs/heads/fixed_length_vectors
- refs/heads/fixed_point_local_laplac
- refs/heads/gemmlowp
- refs/heads/generate
- refs/heads/gha/pip
- refs/heads/gpu_canon_fix
- refs/heads/halide_ir_flatbuffer
- refs/heads/hex_dma2_async
- refs/heads/hexagon_le_runtime
- refs/heads/hexagon_priority
- refs/heads/hexagon_setpriority
- refs/heads/hexagon_strided_pred_load
- refs/heads/hexagon_sysmon_markers
- refs/heads/imaging-synthesis
- refs/heads/includes_fix
- refs/heads/ios_fast_sync_fix
- refs/heads/jia-kai-fix-runtime-cuda-init
- refs/heads/kamil-openglcompute-infinity
- refs/heads/kamil/name_pthread_workers
- refs/heads/kp_bit_shift
- refs/heads/line_buffer
- refs/heads/loop_carry_not_working
- refs/heads/lower_on_huge_stack
- refs/heads/main
- refs/heads/master
- refs/heads/memoize_with_extents
- refs/heads/metal_float16
- refs/heads/metaprogrammed_simplifier_mod
- refs/heads/mohamedadaly-vmlal
- refs/heads/more_powerful_sliding
- refs/heads/new_autoschedule_with_new_simplifier_arm_worker_branch
- refs/heads/new_autoscheduler
- refs/heads/new_simplifier_rule_testing
- refs/heads/newer_ion_ioctl
- refs/heads/no_bounds_query_when_bounds_used
- refs/heads/opengl_compute_buffer_types_fix
- refs/heads/openglcompute_reuse_shared_allocations
- refs/heads/optmize_reorder
- refs/heads/par_for_opt
- refs/heads/pdb/fix_7806
- refs/heads/pdb/hexagon_remote_cmake
- refs/heads/pdb_add_libcpp_makefile_inc
- refs/heads/pdb_eliminate_interleaves_test
- refs/heads/pdb_fix_clang_build
- refs/heads/pdb_fix_install_qc
- refs/heads/pdb_fix_loop_carry
- refs/heads/pdb_fix_simd_op_check_hvx
- refs/heads/pdb_mul_div_mod_multi_thread
- refs/heads/pdb_remove_hvx_v64
- refs/heads/perform_inline_with_order
- refs/heads/pr/2572
- refs/heads/pr/2676
- refs/heads/pr/2975
- refs/heads/pr/3017
- refs/heads/pr/3081
- refs/heads/pr/3387
- refs/heads/pr/3939
- refs/heads/pr/3960
- refs/heads/pr/4380
- refs/heads/pr/4414
- refs/heads/pr/5331
- refs/heads/pr/5438
- refs/heads/pr/5455
- refs/heads/pr/5758_2
- refs/heads/predicated_vector
- refs/heads/prefetch_specialize
- refs/heads/print_schedule
- refs/heads/profile_hardware_counters
- refs/heads/random-pipelines
- refs/heads/rdom_with_pure_vars
- refs/heads/readme-fix-gcd
- refs/heads/realization_order
- refs/heads/refactor_module
- refs/heads/register_promotion
- refs/heads/release/10.x
- refs/heads/release/11.x
- refs/heads/release/12.x
- refs/heads/release/13.x
- refs/heads/release/14.x
- refs/heads/release/15.x
- refs/heads/release/16.x
- refs/heads/release/17.x
- refs/heads/release/8.x
- refs/heads/remove_max_on_fuse_factor
- refs/heads/reorder_rvar
- refs/heads/reset_unique_counter
- refs/heads/revert-3612-ataei-speedup_compiletime
- refs/heads/revert-7009-rootjalex/distribute-w_shl
- refs/heads/revert-7601-compile_hexagon_remote
- refs/heads/riscv_update
- refs/heads/rl_simplifier_rules
- refs/heads/rootjalex/add_simpl_rules
- refs/heads/rootjalex/arm-optimize
- refs/heads/rootjalex/autoscheduler_mcts
- refs/heads/rootjalex/bounds-rewriter
- refs/heads/rootjalex/bounds_synthesis
- refs/heads/rootjalex/cbounds
- refs/heads/rootjalex/cbounds_predicated
- refs/heads/rootjalex/fix-sat-overflow
- refs/heads/rootjalex/fix_estimate_issue
- refs/heads/rootjalex/fix_failed_unrolls
- refs/heads/rootjalex/gsoc_codegen
- refs/heads/rootjalex/improve_cbounds_fixed
- refs/heads/rootjalex/improve_constant_bounds
- refs/heads/rootjalex/pitchfork-arm
- refs/heads/rootjalex/reinterpret-simplify
- refs/heads/rootjalex/rts
- refs/heads/rootjalex/super_simplify_bounds
- refs/heads/rootjalex/test_cbounds_fixed
- refs/heads/rootjalex/test_constant_bounds
- refs/heads/rootjalex/trs-codegen
- refs/heads/rootjalex/trs-codegen-cross
- refs/heads/rootjalex/trs-merge
- refs/heads/rootjalex/uint32-int32-cast
- refs/heads/rootjalex/x86-hadds
- refs/heads/rootjalex/x86-optimize
- refs/heads/rootjalex/x86-optimize-test
- refs/heads/rootjalex/x86-sat
- refs/heads/rootjalex/x86-test
- refs/heads/rule_removal_experiments
- refs/heads/schedule-output-storage
- refs/heads/separate_bounds_query_entrypoint
- refs/heads/shallow
- refs/heads/shift_amount_type_change
- refs/heads/shoaibkamil/cmake-without-arm
- refs/heads/shoaibkamil/correct_memory_fences
- refs/heads/shoaibkamil/d3d-fixes
- refs/heads/shoaibkamil/deprecate_openglcompute
- refs/heads/shoaibkamil/json
- refs/heads/shoaibkamil/llvm_clone_tag
- refs/heads/shoaibkamil/minor-vcpkg-doc-change
- refs/heads/shoaibkamil/opengl_compute_tests
- refs/heads/shoaibkamil/performance_tests_as_generators
- refs/heads/shoaibkamil/rule_removal_experiments
- refs/heads/shoaibkamil/super_simplify_with_interpreter
- refs/heads/shoaibkamil/windows-arm-fix-attributes
- refs/heads/sim_shlib_addr_print
- refs/heads/simplify-nested-broadcasts
- refs/heads/simplify-vectorreduce-shuffles2
- refs/heads/simplify_mod
- refs/heads/sioutas_2020
- refs/heads/sioutas_2020_autoscheduler
- refs/heads/slomp/gpu-codegen-profiling
- refs/heads/slomp/msvc-static-analysis
- refs/heads/solve_div
- refs/heads/solve_div_master
- refs/heads/solve_div_simplifier_test
- refs/heads/sr/python-late-binding-defaults
- refs/heads/srj-aaa
- refs/heads/srj-alloc
- refs/heads/srj-alloca
- refs/heads/srj-appmake2
- refs/heads/srj-armv83a
- refs/heads/srj-aslog
- refs/heads/srj-assert
- refs/heads/srj-assoc
- refs/heads/srj-auto-multi
- refs/heads/srj-auto-multi2
- refs/heads/srj-auto_schedule_mat_mul
- refs/heads/srj-autosched
- refs/heads/srj-b2cpphide
- refs/heads/srj-barr
- refs/heads/srj-bits
- refs/heads/srj-blacklist
- refs/heads/srj-bounds
- refs/heads/srj-bufcalltype
- refs/heads/srj-bufcallwrap
- refs/heads/srj-bufcallwrap2
- refs/heads/srj-buffer
- refs/heads/srj-bv
- refs/heads/srj-classic-autotune
- refs/heads/srj-clean
- refs/heads/srj-constcall
- refs/heads/srj-crosscompile
- refs/heads/srj-ctlz
- refs/heads/srj-cvec-patch
- refs/heads/srj-dag
- refs/heads/srj-debug-to-file
- refs/heads/srj-deir
- refs/heads/srj-f16
- refs/heads/srj-fp16
- refs/heads/srj-fsch
- refs/heads/srj-fthru
- refs/heads/srj-g2
- refs/heads/srj-g3
- refs/heads/srj-gha-test-fixes
- refs/heads/srj-hidden
- refs/heads/srj-hide2
- refs/heads/srj-hvx
- refs/heads/srj-hvx-bug
- refs/heads/srj-hvx-codegen-bug
- refs/heads/srj-hvx-nocopy
- refs/heads/srj-hvxshift
- refs/heads/srj-iib
- refs/heads/srj-initshape
- refs/heads/srj-inv
- refs/heads/srj-ir
- refs/heads/srj-irmut2
- refs/heads/srj-iwyu
- refs/heads/srj-iwyu3
- refs/heads/srj-javascript_work_in_progress
- refs/heads/srj-lensblur
- refs/heads/srj-lessinc
- refs/heads/srj-llvm-loop-opt
- refs/heads/srj-mak
- refs/heads/srj-maxthreads
- refs/heads/srj-mod
- refs/heads/srj-msan
- refs/heads/srj-msan-call
- refs/heads/srj-muldivmod
- refs/heads/srj-mut
- refs/heads/srj-outputs-2
- refs/heads/srj-parse
- refs/heads/srj-pch
- refs/heads/srj-printfunc
- refs/heads/srj-pygp
- refs/heads/srj-revertbits
- refs/heads/srj-schedule-storage
- refs/heads/srj-shl-shr-2
- refs/heads/srj-sio
- refs/heads/srj-static-const
- refs/heads/srj-strided-store
- refs/heads/srj-tidyh
- refs/heads/srj-tiff
- refs/heads/srj-trace
- refs/heads/srj-tutorial
- refs/heads/srj-using
- refs/heads/srj-wasmfix
- refs/heads/srj-xor2
- refs/heads/srj/abstract-gen-without-get-output-func-KEEP
- refs/heads/srj/aligned-alloc
- refs/heads/srj/aligned-alloc-2
- refs/heads/srj/aligned-malloc-with-aligned-alloc
- refs/heads/srj/all-explicit-ctor
- refs/heads/srj/anderson-thread-info-ptr
- refs/heads/srj/aot-perf
- refs/heads/srj/apps-hamal
- refs/heads/srj/argv-signatures
- refs/heads/srj/argv-types
- refs/heads/srj/async-test
- refs/heads/srj/b2cpp-const-data
- refs/heads/srj/better-xt-dispatch
- refs/heads/srj/bfloat1
- refs/heads/srj/bp
- refs/heads/srj/build_halide_h
- refs/heads/srj/c-bool
- refs/heads/srj/cache-clear
- refs/heads/srj/clang-fmt-ignore
- refs/heads/srj/clang-tidy
- refs/heads/srj/clear-c-cache
- refs/heads/srj/cmake-asan
- refs/heads/srj/cmake-asan2
- refs/heads/srj/cmake-jit-generators
- refs/heads/srj/configure-cmake
- refs/heads/srj/cpp-generator-v2-experiment-KEEP
- refs/heads/srj/crosscompile
- refs/heads/srj/csv
- refs/heads/srj/ctad
- refs/heads/srj/debug-to-file-api
- refs/heads/srj/depr
- refs/heads/srj/deprecation
- refs/heads/srj/device-copy
- refs/heads/srj/example
- refs/heads/srj/experiment
- refs/heads/srj/experiment-6967
- refs/heads/srj/exporting
- refs/heads/srj/expr_t
- refs/heads/srj/external-tensors
- refs/heads/srj/f16-convert
- refs/heads/srj/fix-pytorch
- refs/heads/srj/fixed-rollback
- refs/heads/srj/fopen-fix
- refs/heads/srj/forward
- refs/heads/srj/forward-name
- refs/heads/srj/gen-func
- refs/heads/srj/gen-func-2
- refs/heads/srj/gen-func-3
- refs/heads/srj/gen2-1
- refs/heads/srj/gen_closure
- refs/heads/srj/generator_aot_gpu_multi_context_threaded
- refs/heads/srj/globals
- refs/heads/srj/halide-buffer-crop
- refs/heads/srj/halide-malloc-alignment
- refs/heads/srj/halide-must-use
- refs/heads/srj/halide-runtime-must-use-result
- refs/heads/srj/hang-repro
- refs/heads/srj/hannk
- refs/heads/srj/hannk-aliasing
- refs/heads/srj/hannk-error-checking
- refs/heads/srj/hannk-errors
- refs/heads/srj/hannk-inplace
- refs/heads/srj/hannk-mmap
- refs/heads/srj/hannk-tflite-27
- refs/heads/srj/hannk-verbosity
- refs/heads/srj/hdrs
- refs/heads/srj/html-becomes-viz
- refs/heads/srj/implicit-mult-widening
- refs/heads/srj/issue-7076
- refs/heads/srj/iwyu
- refs/heads/srj/iwyu-2
- refs/heads/srj/iwyu-6
- refs/heads/srj/libHANNK
- refs/heads/srj/llvm_type_of
- refs/heads/srj/maybe-unused
- refs/heads/srj/meanop
- refs/heads/srj/metadata-calling-convention
- refs/heads/srj/more-tidy
- refs/heads/srj/msan-dtf
- refs/heads/srj/multimeta
- refs/heads/srj/nanobind
- refs/heads/srj/new-rt-1
- refs/heads/srj/no-threadpool
- refs/heads/srj/no-timeout-thread
- refs/heads/srj/oglc-mutexed
- refs/heads/srj/param-map
- refs/heads/srj/pip-15.x
- refs/heads/srj/pip-cron
- refs/heads/srj/possible-uninited
- refs/heads/srj/pr-7566
- refs/heads/srj/printer-size
- refs/heads/srj/profiler-data-race
- refs/heads/srj/ptr-int-cast
- refs/heads/srj/pyapps
- refs/heads/srj/pyext-fix
- refs/heads/srj/pygen-class
- refs/heads/srj/pygen-deux
- refs/heads/srj/pygen-func
- refs/heads/srj/pygen-native-types
- refs/heads/srj/pyinstall
- refs/heads/srj/pypi-try
- refs/heads/srj/pystuff
- refs/heads/srj/python-buffer-unpack
- refs/heads/srj/python-tutorial
- refs/heads/srj/reshape
- refs/heads/srj/rt-error-smallify
- refs/heads/srj/rt-return-types
- refs/heads/srj/runtime-error-handling
- refs/heads/srj/sat-fixes-exp
- refs/heads/srj/sat-fixes-exp-2
- refs/heads/srj/shadow-field
- refs/heads/srj/snprintf
- refs/heads/srj/spirv-license
- refs/heads/srj/stat-buf-deprecations
- refs/heads/srj/static-buffer-generators
- refs/heads/srj/stmt-html
- refs/heads/srj/stringify
- refs/heads/srj/synth-gen-params
- refs/heads/srj/synth-params-python
- refs/heads/srj/test-arm_sve_redux
- refs/heads/srj/test-intrinsics-bounds
- refs/heads/srj/test8076
- refs/heads/srj/test8078
- refs/heads/srj/test8094
- refs/heads/srj/test8105a
- refs/heads/srj/test8115
- refs/heads/srj/test_tmpdir_fix
- refs/heads/srj/tidy
- refs/heads/srj/tidy-format-14
- refs/heads/srj/tidymore
- refs/heads/srj/tidymore2
- refs/heads/srj/tls
- refs/heads/srj/tls-3
- refs/heads/srj/tls-4
- refs/heads/srj/tls-ucon
- refs/heads/srj/tmp-unschedule-experiment
- refs/heads/srj/tot-fix
- refs/heads/srj/try-revert-sat
- refs/heads/srj/type-traits
- refs/heads/srj/typed-func
- refs/heads/srj/ucon-all-const
- refs/heads/srj/ucon-non-const
- refs/heads/srj/visit-warnings
- refs/heads/srj/wasm-atomic2
- refs/heads/srj/wasm-simd
- refs/heads/srj/wasm-stuff
- refs/heads/srj/wasm-threads
- refs/heads/srj/wasm-updates
- refs/heads/srj/wasm-work
- refs/heads/srj/wip
- refs/heads/srj/x-rounding
- refs/heads/srj/xbuf
- refs/heads/srj/xc+plus+size+tmp
- refs/heads/srj/xc-types
- refs/heads/srj/xt-uint-cast-test
- refs/heads/srj/xtensa-arch
- refs/heads/srj/xtensa-merge
- refs/heads/srj/xvc-experimetn
- refs/heads/srj/zlib-embed
- refs/heads/standalone_autoscheduler
- refs/heads/standalone_autoscheduler_arm_worker
- refs/heads/standalone_autoscheduler_arm_worker_amazon
- refs/heads/standalone_autoscheduler_gpu
- refs/heads/standalone_autoscheduler_hexagon
- refs/heads/sticky_task_assignments
- refs/heads/store_with
- refs/heads/store_with_solver_for_super_simplify
- refs/heads/strict_float_cse_fix
- refs/heads/super_simplify
- refs/heads/super_simplify_v2
- refs/heads/super_simplify_v3
- refs/heads/transitive_wrapper
- refs/heads/trigger-release-v16
- refs/heads/tzumao-autodiff-boundarycond
- refs/heads/tzumao-gradient-autoscheduler-bug
- refs/heads/tzumao-predicate-store-load
- refs/heads/tzumao-python-buffer
- refs/heads/tzumao_autodiff_unbounded
- refs/heads/tzumao_improve_gradient_autoscheduler
- refs/heads/tzumao_issue_4297
- refs/heads/tzumao_licm_before_BI
- refs/heads/unbounded_bugs
- refs/heads/undo_async_copy_chain_black_list
- refs/heads/use_string_literals_for_blobs
- refs/heads/users/lukas/python-pip
- refs/heads/validate_sched_error_msg
- refs/heads/var_ir_fix
- refs/heads/vksnk/async-experiment
- refs/heads/vksnk/async-multiple-producers
- refs/heads/vksnk/async-order
- refs/heads/vksnk/better-loop-carry
- refs/heads/vksnk/better-message
- refs/heads/vksnk/bound-storage
- refs/heads/vksnk/bounds-widen-right
- refs/heads/vksnk/c-print-type
- refs/heads/vksnk/c-round
- refs/heads/vksnk/check-return-result
- refs/heads/vksnk/compute-with-bug
- refs/heads/vksnk/compute_with_async
- refs/heads/vksnk/dma-limit-channels
- refs/heads/vksnk/dma-min-max
- refs/heads/vksnk/expr-match-shuffle
- refs/heads/vksnk/extract-from-scalar
- refs/heads/vksnk/f16-load
- refs/heads/vksnk/fix-packvr
- refs/heads/vksnk/fix_halide_xtensa_narrow_with_rounding_shift_i16
- refs/heads/vksnk/fused-compute-with
- refs/heads/vksnk/hoist-storage-bug
- refs/heads/vksnk/lerp-intrinsics
- refs/heads/vksnk/lower-signed-shifts
- refs/heads/vksnk/missing-exception
- refs/heads/vksnk/non-widening-halves
- refs/heads/vksnk/optimize-shuffles
- refs/heads/vksnk/replace-all
- refs/heads/vksnk/restrict
- refs/heads/vksnk/roll-buffer
- refs/heads/vksnk/roundeven-arm
- refs/heads/vksnk/rvar-bounds
- refs/heads/vksnk/simplify-slice
- refs/heads/vksnk/skip-semaphores
- refs/heads/vksnk/storage-folding
- refs/heads/vksnk/strided-load-of-4_2
- refs/heads/vksnk/typed-scope
- refs/heads/vksnk/update-simd-driver
- refs/heads/vksnk/vectorize-bug
- refs/heads/vksnk/vectorize-scalarize
- refs/heads/vksnk/widening_absd
- refs/heads/vksnk/xtensa-codegen-fp16
- refs/heads/vksnk/xtensa-dma-improvements
- refs/heads/vksnk/xtensa-regroup-pass
- refs/heads/vksnk/xtensa/lift-allocs
- refs/heads/vulkan
- refs/heads/vulkan-diagnose-alloc-failures
- refs/heads/vulkan-phase0-adts
- refs/heads/vulkan-phase1-spirv
- refs/heads/vulkan-phase2-runtime
- refs/heads/vulkan2
- refs/heads/vulkan_fix_gpu_dynamic_shared_test
- refs/heads/vulkan_fix_subregion_memory_offsets
- refs/heads/webassembly-old
- refs/heads/winograd
- refs/heads/wording_fix
- refs/heads/xtensa-codegen
- refs/heads/xtensa-codegen-parallel
- refs/heads/xuanda/fix-serialize-bad-partition-always
- refs/remotes/origin/rootjalex/add_autosched_caching
- refs/tags/release_2018_02_15
- refs/tags/release_2019_08_27
- refs/tags/release_8.0.0
- refs/tags/v10.0.0
- refs/tags/v10.0.1
- refs/tags/v11.0.0
- refs/tags/v11.0.1
- refs/tags/v12.0.0
- refs/tags/v12.0.1
- refs/tags/v13.0.0
- refs/tags/v13.0.1
- refs/tags/v13.0.2
- refs/tags/v13.0.3
- refs/tags/v13.0.4
- refs/tags/v14.0.0
- refs/tags/v15.0.0
- refs/tags/v15.0.1
- refs/tags/v16.0.0
- refs/tags/v17.0.0
- refs/tags/v17.0.1
- refs/tags/v8.0.0
Permalinks
To reference or cite the objects present in the Software Heritage archive, permalinks based on SoftWare Hash IDentifiers (SWHIDs) must be used.
Select below a type of object currently browsed in order to display its associated SWHID and permalink.
Revision | Author | Date | Message | Commit Date |
---|---|---|---|---|
33de721 | Steven Johnson | 26 October 2021, 20:59:23 UTC | wip | 26 October 2021, 20:59:23 UTC |
3dbf639 | Steven Johnson | 26 October 2021, 19:47:15 UTC | wip | 26 October 2021, 19:47:15 UTC |
06a37ca | Steven Johnson | 26 October 2021, 17:23:23 UTC | Add to various OpVisitors to avoid overload warnings for some compilers (#6337) | 26 October 2021, 17:23:23 UTC |
47fa87f | Steven Johnson | 26 October 2021, 17:22:49 UTC | [hannk] Add a prepare() method for ops and interp (#6338) * [hannk] Add a prepare() method for ops and interp This adds a new method to the Interpreter, and to all ops, which allows the interpreter (and each op) to do any one-time preparation for future executions. Previously this was lumped into either the Interpreter's ctor, or the Ops various other methods, but this has some nice advantages at minimal cost: - Since the new prepare() returns an error value, it allows the Interpreter to do sanity checking at startup and return an error to the caller (rather than simply crashing); this makes using it in some runtime environments less painful. - Ops can use this to prep and cache information for multiple subsequent runs; initially, Conv and DepthwiseConv use this to calculate and cache the alignment requirements they need later on. This is unlikely to be a huge performance hit, but it is likely nonzero, and As an added bonus, this means that e.g. the map_bounds() method is no longer susceptible to runtime failures from Halide bounds queries. * Update interpreter.cpp * Update transforms.cpp * Update transforms.cpp | 26 October 2021, 17:22:49 UTC |
667836d | Steven Johnson | 26 October 2021, 17:16:35 UTC | Harvest IWYU changes for LLVM, WABT (#6341) A couple of minor hygiene changes, extracted from https://github.com/halide/Halide/pull/6251: - Clean up LLVM_Headers.h to uniformly use <> instead of "" and to alphabetize properly - Clean up WABT includes to reflect what we need more accurately | 26 October 2021, 17:16:35 UTC |
b34919f | Omar Emara | 26 October 2021, 17:09:48 UTC | Fix wrong type in Ramp CodeGen for OpenGLCompute (#6349) The variable type of the Ramp in OpenGLCompute is assigned the type of the base member of the ramp, which is a scalar, while the ramp is a vector. Instead, we should use the type of the ramp instead to take vectorization into account. Partially resolves #1687. | 26 October 2021, 17:09:48 UTC |
ab57ab1 | Steven Johnson | 26 October 2021, 17:07:44 UTC | [hannk] augment SoftmaxOp to allow specifying axis (#6351) (basically equivalent to #6335 but for softmax) | 26 October 2021, 17:07:44 UTC |
50517cb | Steven Johnson | 26 October 2021, 17:07:00 UTC | [hannk] requantize() should never skip the operation (#6350) * [hannk] requantize() should never skip the operation Even if inq == outq, the incoming buffer can contain out-of-range values; we shouldn't try to optimize the op away, since it's cheap. * Update ops.cpp * Update ops.cpp | 26 October 2021, 17:07:00 UTC |
d6d7bbc | Steven Johnson | 26 October 2021, 17:05:48 UTC | Make halide_type_t and halide_type_of constexpr (#6340) * Make halide_type_t and halide_type_of constexpr This allows us to do a bit more at compile time in some cases; e.g., we can more reliably collapse things like `t == halide_type_t(int, 8)` into `t.as_u32() == literal-integer`, avoiding temporaries. It also makes it tractable to to do a `switch` on a series of `halide_type_t`, since we can now use halide_type_t::as_u32() as a constexpr. There were a number of places that did this in an ad-hoc manner previously; I updated those, and also converted at least one more repeated-if clause into a switch. (TBH, I'm not sure if I'm wild about the syntax, though; it is a bit weedy to scan. Suggestions welcome.) * Ensure there are no uninited vars in constexpr funcs * Update HalideRuntime.h | 26 October 2021, 17:05:48 UTC |
334e27a | Volodymyr Kysenko | 26 October 2021, 05:10:41 UTC | Specify template parameter of ScopedValue (#6352) | 26 October 2021, 05:10:41 UTC |
5e374bc | Omar Emara | 25 October 2021, 20:34:07 UTC | Fix default device wrap native function (#6310) * Fix default device wrap native function Currently, an attempt to call device_wrap_native on a target that uses the default device wrap native function will result in an error of type halide_error_device_interface_no_device, namely in the OpenGLCompute and the Hexagon targets. This happens because the default wrap native function calls debug_log_and_validate_buf after the device_interface is set in halide_device_wrap_native but before the device handle is set, which is validated as a bad state. This patch removes the validation call and adds an assert for the handle much like the other wrap_native implementations in other targets. * Use approperiate error code | 25 October 2021, 20:34:07 UTC |
6d9737d | Xuanda Yang | 25 October 2021, 20:12:24 UTC | Fix cuda-debug logging: fix incorrect threads_per_core when SM >= 8.0. fix device memory smaller than acutal size. (#6346) | 25 October 2021, 20:12:24 UTC |
ba81a06 | Volodymyr Kysenko | 25 October 2021, 16:22:38 UTC | Scheduling directive to set an explicit storage bound (#6327) * bound_allocation scheduling directive * Add a more specific error and test * Add a correctness test for bound_allocation * Remove debug output from test * Move expression * Per dim bound_storage * Update CMakeLists.txt * how hard can it be * Rename the error code * More detailed error message | 25 October 2021, 16:22:38 UTC |
297c30a | Steven Johnson | 22 October 2021, 16:30:56 UTC | Fix Makefile for LLVM11 (#6343) | 22 October 2021, 16:30:56 UTC |
6c9224a | Steven Johnson | 21 October 2021, 23:16:36 UTC | Fix HelloWasm (#6342) - Add workaround for Cross-origin isolation requirements - Add CXXFLAGS to allow benchmarks to compile | 21 October 2021, 23:16:36 UTC |
0078880 | Thales Sabino | 21 October 2021, 17:52:39 UTC | Add support for AMX instructions (#5818) * Add support for AMX tile instructions * Make AMX transform opt-in with memory type * Clean up tiled_matmul test * Handle AMX intrinsic attributes better * Format * Fix test to behave like other tests * Add doc and missing load check * Format * Throw error if user requests AMX for invalid operation * Add Tile lowering pass to makefile * Use spaces in Makefile * Place AMX instrinsics into a separate module (x86_amx.ll) This will only be included if LLVM >= 12 is used to build Halide * Fix CreateAlignedLoad() call in CodeGen_X86 Recent changes in LLVM trunk made the previous calling convention deprecated (and thus compiling with warning/error) * fix exporting to module * add llvm funcs for su, us, uu amx variants * add other amx intrinsics to intrinsic_defs * match with unsigned 8 bit integers This matching happens for the left and right side, each determining whether that side is unsigned or signed. In the end the proper 1024 byte buffer is created with (un)signed. * match for 32 bit integer and guard unsigned amx on llvm 13 * adjust test to cover unsigned tile operations * guard properly with llvm 12 * create explicit error if failed to use tile operations * pass types as template params rather than boolean This makes the intention clearer * clang-format patch * add x86_amx to makefile's runtime components * make tiled_matmul compatible with c++11 * add mattrs required for amx * fix formatting issues * remove outdated FIXME comments * add bf16 tile operations to the runtime * create a schedule that should map to amx * create full amx-bf16 schedule * allow amx operations to yield f32s * accept 32 bit float stores * add support for bf16 * add missing bf16 intrinsics * fix striding error when loading matrix * add checks to verify bf16 result * fix scaling of col_bytes on matmul call * move brace to previous line * derive result type using a function rather than lambda * run clang tidy and format * have tile_store return i32 * make is_3d_tile_index robust to indexing changes * apply formatting suggestions * both first and second can be const qualified * remove trailing whitespace in unformatted section * make requested style changes * rename NewMatmul -> Matmul * fix warning about missing return value * use get_1d_tile_index to handle special case When using `Buffer` instead of `ImageParam` the `Ramp` expression generated is 1D instead of 2D, therefore we recognize this with a special case. The lanes are still matched against the dimensions of the LHS 3d tile lanes. * add correctness test for AMX instructions * correctness part has been separated out * remove unused variables Co-authored-by: John Lawson <john@codeplay.com> Co-authored-by: Thales Sabino <thales@codeplay.com> Co-authored-by: Steven Johnson <srj@google.com> Co-authored-by: Frederik Engels <frederik.engels@codeplay.com> | 21 October 2021, 17:52:39 UTC |
05107ca | Steven Johnson | 21 October 2021, 17:23:31 UTC | Fix WASM datalayout for top-of-tree LLVM (#6339) | 21 October 2021, 17:23:31 UTC |
ecf69b0 | Xuanda Yang | 21 October 2021, 04:16:55 UTC | Add support for CUDA capability 8.6 (#6334) * Add support for CUDA capability 8.6 * add assertion to guard LLVM version * fallback to sm80 if LLVM < 13.0 | 21 October 2021, 04:16:55 UTC |
27f975f | Andrew Adams | 20 October 2021, 22:32:08 UTC | Add ability to pass a user context in JIT mode (#6313) * Change type of first arg to all JITHandlers and expose struct to users * Make it possible to pass a custom JITUserContext per realize call * More comments * Fix type in python bindings * Fix type in python bindings * Fix more types in python bindings * Add user_context-accepting variants of other realize-like functions * Revert tests back to the way they are on master but with comments explaining why they are the way they are * Add example of passing a custom context to copy_to_host * Revert test to be closer to master. It was that way for a reason * The first arg to get_library_symbol isn't actually a user_context * Add copy_to_device example too * Fix python * Make bad_buf even worse * Comment clarifications | 20 October 2021, 22:32:08 UTC |
c3641b6 | Steven Johnson | 20 October 2021, 00:16:04 UTC | [hannk] augment L2NormOp to allow specifying axis (#6335) | 20 October 2021, 00:16:04 UTC |
d80bb23 | Andrew Adams | 19 October 2021, 16:43:07 UTC | Add a new unsigned division method (#6322) * Add a new unsigned division method It uses averages rounding up instead of averages rounding down, to reduce instruction count on x86. Division by 7 before: vpmulhuw .LCPI0_1(%rip), %ymm0, %ymm1 vpsubw %ymm1, %ymm0, %ymm0 vpsrlw $1, %ymm0, %ymm0 vpaddw %ymm1, %ymm0, %ymm0 vpsrlw $2, %ymm0, %ymm0 Division by 7 after: vpmulhuw .LCPI0_1(%rip), %ymm0, %ymm1 vpavgw %ymm0, %ymm1, %ymm0 vpsrlw $2, %ymm0, %ymm0 * Remove debugging code * Add comment elaborating on why this is a good idea | 19 October 2021, 16:43:07 UTC |
deeb6bc | Steve Suzuki | 19 October 2021, 16:40:16 UTC | Rewrite double/triple narrowing from float on ARM (#6305) * Rewrite double/triple narrowing from float on ARM | 19 October 2021, 16:40:16 UTC |
7613f9d | Steven Johnson | 18 October 2021, 16:55:35 UTC | [hannk] Improve GatherOp (#6328) We (mostly) implemented GatherOp for TFLite's Gather op, but missed some things: - There's a batch_dim param for Gather that we were ignoring. I added code to fill it in, but we punt for values != 0, because I haven't yet found a test case that handles it. Should be easy to fill in when we do. - TFLite's GatherNd op (and NNAPI's GATHER op) allow for the indices arg to be multidimensional; I rewrote the code to handle this and it's passing the acceptance tests for NNAPI's cases. (It doesn't yet handle the GatherNd op because, again, I haven't found a good test case. Should be simple to do when we do.) | 18 October 2021, 16:55:35 UTC |
8d098de | Steven Johnson | 18 October 2021, 16:52:49 UTC | [hannk] Restructure BinaryOp to allow adding more temporary types (#6326) Change is a no-op as written, but I'd like to land it so this change doesn't get lost -- it's handy for debugging pipelines that happen to use op/type variants we don't yet support (eg arithmetic on floats), which can unblock the ability to run more tests (albeit not efficiently). | 18 October 2021, 16:52:49 UTC |
cd8146d | Steven Johnson | 18 October 2021, 16:47:48 UTC | [hannk] Fix override annotation in hannk (#6315) Minor hygiene: add explicit override annotations and enable the compiler warnings. (I was about to tweak some of the virtual functions and this has been bothering me for a while.) | 18 October 2021, 16:47:48 UTC |
923025a | Steven Johnson | 14 October 2021, 20:27:00 UTC | [hannk] Fix assert in dconv (#6320) | 14 October 2021, 20:27:00 UTC |
071f5f7 | Steven Johnson | 13 October 2021, 18:23:34 UTC | [hannk] Improve Op::dump() (#6314) * [hannk] Improve Op::dump() Rewrite the Op::dump() methods to be more verbose, so that we can determine all the details of the tensors used, and the hierarchy of OpGroups; also add a post-transform dump when verbosity >= 2. (I'm using this to track down a subtle bug, but landing this separate from other fixes seems appropriate) * Fixes | 13 October 2021, 18:23:34 UTC |
63cfd9d | Andrew Adams | 12 October 2021, 20:52:24 UTC | Substitute in all widening lets prior to find_intrinsics (#6307) * Look through lets in find_intrinsics If an Expr like: narrow((widen(x) + y + 1)/2) gets lifted into a let, the simplifier will then substitute things in like so: let foo = widen(x) + y in narrow(foo + 1)/2, potentially breaking a pattern. This is a general problem for patterns that widen, do some math, and then narrow. They will always get cut at the widening operation, so this PR just substitutes in all widening operations. This can't cause combinatorial blow-up, because each substitution has a wider type than the values that it depends on, so the chains can be at most 2-3 lets deep. * Make substituting in widening lets a prepass instead * Move find_intrinsics a little earlier in lowering * Handle impure subexpressions by leaving them behind at the original let site * FindIntrinsics must be after the last simplification pass | 12 October 2021, 20:52:24 UTC |
a351021 | Andrew Adams | 12 October 2021, 19:20:33 UTC | Demosaic should be done unsigned (#6308) So that we can use pavgw instructions and the like. Speeds it up slightly on x86 (5% or so) | 12 October 2021, 19:20:33 UTC |
3931213 | Steven Johnson | 12 October 2021, 18:57:02 UTC | [hannk] SpaceDepthOp isn't limited to u8 Tensors (#6311) The code as written should work on all Tensor types; we just need to require the input and output types match. | 12 October 2021, 18:57:02 UTC |
d4e45bd | Steven Johnson | 12 October 2021, 18:56:43 UTC | [hannk] Fix > and >= op implementations (#6312) a>b should be b<=a (not b <a) a>=b should be b<a (not b<=a) | 12 October 2021, 18:56:43 UTC |
89b36b4 | Steven Johnson | 12 October 2021, 18:00:09 UTC | [hannk] Fix faulty 'shallow' logic in dconv2d (#6309) * [hannk] Fix faulty 'shallow' logic in dconv2d | 12 October 2021, 18:00:09 UTC |
e058532 | Andrew Adams | 11 October 2021, 21:56:51 UTC | store_in(MemoryType::Stack) should use alloca if the size is small (#6289) * Test using a real alloca call instead of the pseudostack * Improve test and remove debugging prints * Fix test * Switch to heap based on cumulative size rather than current size and add a test case that illustrates why this matters. * Fix test that requires actual heap allocations * Make test actually test more than one trip through the loop * Fix alignment of stack allocation * Branching is cheaper than alloca(0) * Tweak test pass condition * Move shared constant to a single locations * Namespace shuffling * Fix comment location | 11 October 2021, 21:56:51 UTC |
1e40a71 | Steven Johnson | 11 October 2021, 20:48:35 UTC | Fix for top-of-tree LLVM (#6306) * Fix for top-of-tree LLVM * drive-by fix for other bad LLVM_VERSION checks | 11 October 2021, 20:48:35 UTC |
2a2c4b0 | Andrew Adams | 10 October 2021, 21:06:57 UTC | At some point llvm re-added pavgw intrinsics (#6302) * At some point llvm re-added pavgw intrinsics This is a good thing, because these do not reliably trigger from the pattern in runtime/x86.ll * Delete more dead code | 10 October 2021, 21:06:57 UTC |
2bfa567 | Alex Reinking | 08 October 2021, 18:52:29 UTC | Add ClampUnsafeAccesses pass. (#6294) * Add ClampUnsafeAccesses pass. Fixes #6131 Inject clamps around func calls h(...) when all the following conditions hold: 1. The call flows into an indexing context, such as: `f(x) = g(h(x))` or `let y = h(x) in f(x) = g(y)` 2. The FuncValueBounds of h are smaller than those of its type 3. h's allocation bounds might be wider than its compute bounds Condition (3) is not yet implemented see #6297. | 08 October 2021, 18:52:29 UTC |
c6529ed | Steven Johnson | 08 October 2021, 01:21:42 UTC | Modernize loops, part 4/final (#6296) * Modernize loops, part 4/final Final part getting code ready for clang-tidy's modernize-loop check, plus enabling the check * Update Module.cpp | 08 October 2021, 01:21:42 UTC |
0b297f2 | Steven Johnson | 07 October 2021, 20:04:57 UTC | Modernize loops, part 3 (#6295) * Modernize loops, part 3 Part 3 of getting code ready for clang-tidy's modernize-loop check * Update Func.cpp * Address review comments | 07 October 2021, 20:04:57 UTC |
e27db6f | Zalman Stern | 07 October 2021, 16:26:52 UTC | Don't set environment for RISCV Linux as apparently it is not (#6282) used. Should not change anything. Per issue: https://github.com/halide/Halide/issues/6281 | 07 October 2021, 16:26:52 UTC |
ed87acb | Steven Johnson | 07 October 2021, 00:50:51 UTC | Modernize loops, part 2 (#6293) Part 2 of getting code ready for clang-tidy's modernize-loop check | 07 October 2021, 00:50:51 UTC |
9169734 | Steven Johnson | 06 October 2021, 20:51:06 UTC | [hannk] Add specialization for broadcast of input 0 (#6291) * [hannk] Add specialization for broadcast of input 0 Alternate fix for https://github.com/halide/Halide/pull/6290 that is Halide-only. * Update elementwise_generator.cpp * Oops, do Mul as well | 06 October 2021, 20:51:06 UTC |
71c47b3 | Steven Johnson | 06 October 2021, 20:37:26 UTC | Modernize loops, part 1 (#6292) Part 1 of getting code ready for clang-tidy's modernize-loop check: src/autoschedulers and src/runtime | 06 October 2021, 20:37:26 UTC |
81b34e2 | Basile Clement | 05 October 2021, 16:32:59 UTC | Remove unbound variable in documentation (#6287) In the example for RDom::where, the simplified case contains a free occurence of `r.x`, which should be replaced with `10` since we are in the case `r.x == 10`. | 05 October 2021, 16:32:59 UTC |
da7c66e | Steven Johnson | 04 October 2021, 16:33:15 UTC | Make parking_control (etc) use vtables (#6275) * Make parking_control (etc) use vtables This class hierarchy is clearly best modeled with virtual methods (rather than fn ptrs), but was not; we *think* this was due to COMDAT issues that have been resolved by other means. I refactored this to use virtual methods instead (and removed the unused unpark_all function); it seems to work locally. * Add -fno-rtti to runtime compile flags (needed to allow vtables in runtime code) * make all overrides 'final' * Make virtual methods protected * Make structs final too * pacify clang-tidy | 04 October 2021, 16:33:15 UTC |
2495bcc | Zalman Stern | 02 October 2021, 17:38:40 UTC | Remove hopefully dead code. (#6280) | 02 October 2021, 17:38:40 UTC |
81ad45e | Andrew Adams | 01 October 2021, 21:41:29 UTC | compiler stack usage improvements (#6239) * Reduce compiler stack usage, and grant more control over stack usage I found some code in the wild that needs 9mb of stack to lower. It's a pain to even diagnose the problem definitively, because it requires plumbing platform-specific linker flags to grant more stack. This commit: - Reduces peak stack usage of similar code in the repo (the FFT) - Increases the stack size for lowering and codegen to 32mb on all platforms, using stack switching techniques. We started doing this on Windows a while ago and it hasn't bitten us, so let's try on more platforms. - Gives user control over the amount of stack used for lowering and codegen. It shouldn't be necessary except when diagnosing problems like this in future. Using the control I was able to determine that the correctness tests all pass with 500k of stack, and the apps all pass with 1MB, so 32MB ought to be enough for anybody. I found a never-checked-in test for the mux helper which uses 10MB of stack and really shouldn't need to, so I added that (and opened an issue) as an example of how to grant more stack when necessary, even though 10MB is less than our default now. Also fixed an incorrect comment on the Block node. * Fixes for macos * Add test to cmake * Fix type of temporary * Reduce number of exprs in the mux * Fix quadratic memory usage in new test * Better comment * Variable name fix * Try giving windows a little more stack * Clarify why we want a live Stmt in scope * Review comments * Check some return values * tickle buildbots * Fixes for arm macos * Remove stray character * clang-tidy had some reasonable concerns * Comment fix * Maybe windows needs yet more stack Co-authored-by: Steven Johnson <srj@google.com> | 01 October 2021, 21:41:29 UTC |
4b9f728 | Steven Johnson | 30 September 2021, 17:16:12 UTC | Remove more obsolete MachO/COMDAT workarounds (#6274) * Remove more obsolete MachO/COMDAT workarounds (Followup to #6272) * Update metal.cpp * A few more fixes | 30 September 2021, 17:16:12 UTC |
ef387ad | Steven Johnson | 30 September 2021, 17:03:07 UTC | Minor cleanups in thread_pool_common.h (#6276) Minor hygiene noticed when doing other patches: - prefer `constexpr int` over `#define`, since we can now use C++17 in runtime code - remove redundant def of MAX_THREADS - use `do .. while (0)` idiom for functional macros | 30 September 2021, 17:03:07 UTC |
a8d7013 | Steven Johnson | 30 September 2021, 02:09:12 UTC | Remove the runtime/ssp module (#6277) * Remove the runtime/ssp module It doesn't get included via *any* path in the runtime linker, and removing it doesn't seem to affect any tests. (I haven't looked at the revision history to see when it was added and/or when inclusion of it was removed.) * Update LLVM_Runtime_Linker.cpp * Update LLVM_Runtime_Linker.cpp | 30 September 2021, 02:09:12 UTC |
e092c01 | Steven Johnson | 29 September 2021, 23:08:38 UTC | Fix alignment issues in synchronization_common.h (#6272) * Fix alignment issues in synchronization_common.h To work around old COMDAT issues, we allocated the table as a char array and cast it to what we want; unfortunately this doesn't guarantee the right alignment for the table and in some environments (eg wasm) we can get unaligned-access failures. We could fix this by forcing the right alignment, but since we fixed COMDAT issues in another way a while back (adding smarts to LLVM_Runtime_Linker), let's just remove the hack and declare it normally. Also added some drive-by changes to ensure that the hashtable size and HASH_TABLE_BITS were safe (this happened to be the case before but wasn't enforced), and also to init all the fields in hash_bucket. (Q: do we really need `check_hash()` to exist? With the mods in place above, is it possible for addr_hash() to return a bad index?) * Always use HASH_TABLE_BITS in addr_hash() * Only use check_hash() in DEBUG_RUNTIME builds | 29 September 2021, 23:08:38 UTC |
4307645 | aankit-ca | 29 September 2021, 16:56:34 UTC | [Hexagon] Remove qurt_init_fini (#6271) Including qurt_init_fini generates the below error: dlopenbuf failed: undefined symbol #140 __DTOR_LIST__ Including qurt_init_fini was needed when the pipeline was loaded using mmap. This is not needed now. Co-authored-by: Ankit Aggarwal <aankit@quicinc.com> | 29 September 2021, 16:56:34 UTC |
e836ea6 | Roman Lebedev | 28 September 2021, 08:36:38 UTC | CMake: install docs into halide subdirectory of doc dir (#6267) | 28 September 2021, 08:36:38 UTC |
8fbc788 | Steven Johnson | 27 September 2021, 17:12:25 UTC | [hannk] Add Make target to rebuild just the Halide-generated code. (#6265) * [hannk] Add Make target to rebuild just the Halide-generated code. Also, drive-by comment fix about disabling Fortran (!) when building for Android. * More changes | 27 September 2021, 17:12:25 UTC |
ebb9f19 | Roman Lebedev | 24 September 2021, 16:13:58 UTC | Usage of C++ `<thread>` header requires linking to threading library (#6257) * Usage of C++ `<thread>` header requires linking to threading library `Generator.cpp` and `ThreadPool.h` both `#include <thread>`, but don't link to the threading implementation. This fixes build for me on debian sid, which is failing otherwise with: ``` $ ninja [ 0% 2/1480][ 0% 0:00:00 + 0:33:06] Linking CXX executable src/autoschedulers/adams2019/get_host_target FAILED: src/autoschedulers/adams2019/get_host_target : && /usr/local/bin/clang++ -pipe -O3 -DNDEBUG src/autoschedulers/adams2019/CMakeFiles/get_host_target.dir/get_host_target.cpp.o -o src/autoschedulers/adams2019/get_host_target -Wl,-rpath,/repositories/halide/build/src: src/libHalide.so.13.0.0 && : ld: error: /usr/lib/gcc/x86_64-linux-gnu/11/libstdc++.so: undefined reference to pthread_create [--no-allow-shlib-undefined] clang: error: linker command failed with exit code 1 (use -v to see invocation) [ 0% 5/1480][ 0% 0:00:00 + 0:12:47] Linking CXX executable src/autoschedulers/adams2019/test_apps_autoscheduler FAILED: src/autoschedulers/adams2019/test_apps_autoscheduler : && /usr/local/bin/clang++ -pipe -O3 -DNDEBUG src/autoschedulers/adams2019/CMakeFiles/test_apps_autoscheduler.dir/test.cpp.o -o src/autoschedulers/adams2019/test_apps_autoscheduler -Wl,-rpath,/repositories/halide/build/src src/libHalide.so.13.0.0 -ldl && : ld: error: /usr/lib/gcc/x86_64-linux-gnu/11/libstdc++.so: undefined reference to pthread_create [--no-allow-shlib-undefined] clang: error: linker command failed with exit code 1 (use -v to see invocation) [ 0% 7/1480][ 0% 0:00:00 + 0:08:53] Linking CXX executable src/autoschedulers/adams2019/test_function_dag FAILED: src/autoschedulers/adams2019/test_function_dag : && /usr/local/bin/clang++ -pipe -O3 -DNDEBUG src/autoschedulers/adams2019/CMakeFiles/test_function_dag.dir/test_function_dag.cpp.o src/autoschedulers/adams2019/CMakeFiles/test_function_dag.dir/FunctionDAG.cpp.o src/autoschedulers/adams2019/CMakeFiles/test_function_dag.dir/ASLog.cpp.o -o src/autoschedulers/adams2019/test_function_dag -Wl,-rpath,/repositories/halide/build/src src/libHalide.so.13.0.0 && : ld: error: /usr/lib/gcc/x86_64-linux-gnu/11/libstdc++.so: undefined reference to pthread_create [--no-allow-shlib-undefined] clang: error: linker command failed with exit code 1 (use -v to see invocation) [ 0% 9/1480][ 0% 0:00:00 + 0:06:41] Linking CXX executable src/autoschedulers/li2018/gradient_autoscheduler_test_cpp FAILED: src/autoschedulers/li2018/gradient_autoscheduler_test_cpp : && /usr/local/bin/clang++ -pipe -O3 -DNDEBUG src/autoschedulers/li2018/CMakeFiles/gradient_autoscheduler_test_cpp.dir/test.cpp.o -o src/autoschedulers/li2018/gradient_autoscheduler_test_cpp -Wl,-rpath,/repositories/halide/build/src src/libHalide.so.13.0.0 && : ld: error: /usr/lib/gcc/x86_64-linux-gnu/11/libstdc++.so: undefined reference to pthread_create [--no-allow-shlib-undefined] clang: error: linker command failed with exit code 1 (use -v to see invocation) [ 2% 35/1480][ 0% 0:00:00 + 0:05:09] Generating included_schedule_file.runtime.o ninja: build stopped: subcommand failed. ``` * Dommy commit to retrigger bots | 24 September 2021, 16:13:58 UTC |
11ec1dc | Steven Johnson | 17 September 2021, 21:14:21 UTC | Remove remaining bits of LLVM10 support (#6245) Update various parts of the source that still assume LLVM10 is supported. (We probably need to update the buildbots as well before this lands.) | 17 September 2021, 21:14:21 UTC |
95198a7 | Michael Gharbi | 15 September 2021, 21:47:31 UTC | Remove torch/extension dependency and fix PyTorch example, adding the correct (GPU) autoscheduler (#6234) * fix static op warning * add backward * removes "torch/extension.h" dependency * suppress grad check warnings * simplifies CUDA PyTorch bindings, remove HL_PT_CUDA define * fix gradient for scalar parameter * fix style issues * Update CodeGen_PyTorch.cpp | 15 September 2021, 21:47:31 UTC |
2d0ac72 | Steven Johnson | 14 September 2021, 23:41:33 UTC | Modify hexagon_remote/Makefile to allow defining C++ #defines on the command line (#6243) * Modify hexagon_remote/Makefile to allow defining C++ #defines on the command line * Update Makefile | 14 September 2021, 23:41:33 UTC |
fdcf140 | Dillon Sharlet | 14 September 2021, 20:27:54 UTC | Improve the code quality of scalarized code (#6218) * Improve the quality of scalarized predicated loads. * Add assert * clang-format * We can't assume this assert won't be hit. * Fix implementation of single lane shuffles in deinterleave. | 14 September 2021, 20:27:54 UTC |
10e4e8e | Dillon Sharlet | 13 September 2021, 18:27:59 UTC | Fall through to LLVM for unknown shuffles on Hexagon (#6237) * Fall through to LLVM for unknown shuffles on Hexagon. * Don't fall back to LLVM, use vdelta instead. * Fix vdelta patterns | 13 September 2021, 18:27:59 UTC |
d80e5d8 | Andrew Adams | 10 September 2021, 19:31:17 UTC | Join generator watchdog timer if exception thrown (#6240) Make sure to join the generator watchdog timer when an exception is thrown. Otherwise the error message gets swallowed entirely and you just get "terminate called without an active exception" Also rejiggered the watchdog to do a timed wait on a condition variable instead of polling every 100ms. | 10 September 2021, 19:31:17 UTC |
b78b205 | Steven Johnson | 02 September 2021, 17:58:52 UTC | Upgrade clang-format and clang-tidy to LLVM-12 (#6233) | 02 September 2021, 17:58:52 UTC |
24d6bd6 | Steven Johnson | 29 August 2021, 20:02:34 UTC | Hoist unrolled prefetches to top of the block (#6230) * Hoist unrolled prefetches to top of the block When a loop with prefetch is unrolled, the prefetch instructions getting scattered through the loop can cause LLVM codegen issues in some cases (see https://bugs.llvm.org/show_bug.cgi?id=51172). As a partial mitigation for that issue, this PR adds a pass to hoist all prefetch instructions to the top of their loop. This is still a bit experimental; it definitely addresses the codegen issues we see, but makes the use of prefetch potentially less effective (since the hoisted prefetch may be too far from the eventual use to be effective). * appease clang-tidy * Avoid quadratic behavior * Use template instead of std::function * Require prefetch offset to be pure | 29 August 2021, 20:02:34 UTC |
085e11e | Andrew Adams | 27 August 2021, 21:00:14 UTC | Rename inner version of bounds_of_expr_in_scope (#6232) It's not in the explicit namespace that it's requested in (Halide::Internal), so turning on that debugging code results in compile failures. I just gave it a different name to disambiguate. | 27 August 2021, 21:00:14 UTC |
c860cab | Steven Johnson | 25 August 2021, 17:36:14 UTC | Add modernize-make-shared and modernize-make-unique to .clang-tidy and fix warnings (#6222) * Add modernize-make-shared and modernize-make-unique to .clang-tidy and fix warnings * std::initializer_list instead of std::vector * Update Pipeline.h | 25 August 2021, 17:36:14 UTC |
f43f016 | Steven Johnson | 24 August 2021, 22:25:57 UTC | More prefetch fixes (#6226) * More prefetch fixes - Arguments to Call::prefetch() must be scalars, not vectors - Add more testcases to correctness_prefetch Addresses more of #6219 (but still not the title issue, i.e. ignoring offset) * Fix horrific bug * Have CodeGen_C emit the same arguments for __builtin_prefetch() as the runtime module * Minor cleanup * Explicitly pass target thru * Fix correctness_prefetch for host-hvx * Add comments | 24 August 2021, 22:25:57 UTC |
d507b9a | Steven Johnson | 23 August 2021, 21:46:26 UTC | Fix bug in prefetch() (#6225) In #6155, we incorrectly assume that we can qualify the 'from' prefetch var by just adding 'prefix'; this isn't true if (e.g.) there are any splits involved. Instead, we need to walk through the active loops to find a suitable match. In addition, if no match is found, we now fail with an error (rather than quietly doing something undefined), as the 'from' var is required to be from an active loop. (Addresses some-but-not-all of #6219) | 23 August 2021, 21:46:26 UTC |
30040cd | Steven Johnson | 23 August 2021, 16:31:16 UTC | Prefetch cleanup (#6220) * Use std::move where appropriate * Prefetch cleanup This is (mostly) a cleanup pass to make the flow of Prefetch injection & lowering more obvious to the reader of the code (via commenting and minor code restructuring). Notable exception: the HVX backend processing of Call::prefetch (and relevant runtime code) was refactored to make it (IMHO) less janky. (Also some drive-by insertions of std::move where appropriate) | 23 August 2021, 16:31:16 UTC |
7c437e4 | Alexander Root | 22 August 2021, 20:27:39 UTC | fix #6207 (#6214) Co-authored-by: Steven Johnson <srj@google.com> | 22 August 2021, 20:27:39 UTC |
7aafbb9 | Steven Johnson | 20 August 2021, 22:53:06 UTC | Fix wasm simd issues (#6217) - f64x2.convert_low_i32x4_s/u are now generating proerly at top-of-tree, so re-enable them - f64x2.promote_low_f32x4 is temporarily broken for larger vector widths, so disable it for now (issue is reported and fix is underway) Also, driveby change to .gitignore. | 20 August 2021, 22:53:06 UTC |
ed5e1e1 | Steven Johnson | 20 August 2021, 22:25:50 UTC | Use C++17 structured binding instead of std::tie (#6213) * Use C++17 structured binding instead of std::tie * appease clang-tidy | 20 August 2021, 22:25:50 UTC |
7079ff2 | Steven Johnson | 20 August 2021, 19:11:41 UTC | Fix for upcoming LLVM API change (#6212) | 20 August 2021, 19:11:41 UTC |
06e8865 | Dillon Sharlet | 20 August 2021, 02:11:04 UTC | Fix issues with predicated interleaving stores on Hexagon (#6211) * Fix issues with predicated interleaving stores on Hexagon. * Fix buffer API usage issue. * Add default device API support for Hexagon. * More DeviceAPI support | 20 August 2021, 02:11:04 UTC |
c61a930 | Alexander Root | 19 August 2021, 17:06:04 UTC | Fix unroll failures from adams2019 when the Expr depends on estimates (#6200) * track depends_on_estimate in BoundsInfo - fix bounds_are_constant | 19 August 2021, 17:06:04 UTC |
d653a73 | Steven Johnson | 17 August 2021, 21:15:38 UTC | Add IRMutator::mutate_exprs() (#6203) * Add IRMutator::mutate_exprs() There's a common pattern in many IRMutators that is "mutate a vector<Expr> and optionally let me know if anything is different". (Note, this uses C++17 structured-binding syntax, which we previously weren't using in Halide. Objections?) This adds a shared utility method (well, two, thanks to VariadicVisitor) and plus in the usage in all the places that seemed obvious. I doubt this moves the needle on speed in either direction, but makes for smaller code. * Silence warnings * Update Inline.cpp * Update ParallelRVar.cpp * Update SplitTuples.cpp * Update StorageFlattening.cpp * Revisions | 17 August 2021, 21:15:38 UTC |
d811a3f | Steven Johnson | 16 August 2021, 20:34:58 UTC | More augmentation of debugging code (#6185) * More augmentation of debugging code This expands on #6182 by added tracking for BoxesTouched, and integrating the nesting levels with the previous code. This allows a more complete vision of what's happening during bounds calculation. * Minor fixes * Unexpose indent | 16 August 2021, 20:34:58 UTC |
72284a2 | Steven Johnson | 13 August 2021, 19:12:07 UTC | unsafe_promise_clamped() should be pure (#6199) As discussed in https://github.com/halide/Halide/pull/6189, this intrinsic should probably be Pure. | 13 August 2021, 19:12:07 UTC |
a081660 | Zalman Stern | 12 August 2021, 21:06:38 UTC | Add information to comment on ```align_loads```. (#6196) * Add information to comment. * Wording improvement. | 12 August 2021, 21:06:38 UTC |
3b7e1ba | Steven Johnson | 12 August 2021, 20:55:14 UTC | [hannk] Remove alignment requirements for shallow DepthwiseConv ops (#6198) * [hannk] Remove alignment requirements for shallow DepthwiseConv ops * Update depthwise_conv_generator.cpp | 12 August 2021, 20:55:14 UTC |
6229afa | Steven Johnson | 12 August 2021, 20:15:28 UTC | Upgrade apps/hannk to TFLite 2.6 (#6197) * Upgrade apps/hannk to TFLite 2.6 * Remove scalpel left in patient | 12 August 2021, 20:15:28 UTC |
69075b4 | Steven Johnson | 12 August 2021, 19:51:15 UTC | Internal::promise_clamped() should be pure (Fixes #6186) (#6189) * ApplySplit should use pure promise_clamped() (Fixes #6186) * Make all promise_clamped calls pure * pure_promise_clamped -> promise_clamped | 12 August 2021, 19:51:15 UTC |
2394250 | aankit-ca | 12 August 2021, 17:06:00 UTC | [Hexagon] Do not pattern match inside if_then_else block (#6194) * Do not pattern match inside if_then_else block Resolves the compilation below compilation error while generating hannk::upsample_channels_uint8 from hannk/depthwise_conv.generator: Unknown intrinsic dynamic_shuffle The problem occurs when we pattern match hvx instrinsics inside if_then_else nodes and try to scalarize them later. In the patch we prevent matching these intrinsics inside if_then_else blocks. * Do not match for only vector types * pattern match for scalars and scalar-broadcasts Co-authored-by: Ankit Aggarwal <aankit@quicinc.com> | 12 August 2021, 17:06:00 UTC |
43b412b | Steven Johnson | 12 August 2021, 17:02:52 UTC | Update WABT version to latest release (1.0.24) (#6193) | 12 August 2021, 17:02:52 UTC |
b7fa882 | Steven Johnson | 11 August 2021, 21:28:10 UTC | Fix unused-variable warning-as-error (#6192) The latest Emscripten compilers will complain about this. | 11 August 2021, 21:28:10 UTC |
67802cf | Steven Johnson | 11 August 2021, 18:53:36 UTC | Add memmove to WasmExecutor callbacks (#6191) Some not-yet-landed variants of the wasm toolchain+runtime environments need this. | 11 August 2021, 18:53:36 UTC |
e8b5837 | Steven Johnson | 11 August 2021, 17:33:13 UTC | Add a watchdog timer to Generator (#6184) * Add a watchdog timer to Generator In degenerate conditions (eg, bugs in Halide or LLVM, or pathological user code), running a Generator can take arbitrarily long times (we recently found some buildbots that had Generators that had been running for several days). This adds a simple background thread to generator_main() to ensure that compilations don't take unreasonable lengths of time. It defaults to 15 minutes of wall-clock time, but can be customized by the -t flag. * Update Generator.cpp | 11 August 2021, 17:33:13 UTC |
fb44637 | Steven Johnson | 10 August 2021, 22:26:10 UTC | Augment debugging code (#6182) * Augment debugging code I upgraded some debugging code in AddImageChecks and Bounds while tracking down a bug, and I think the upgrades are worth keeping for future use. * clang-format * Minor changes per comments * clang-format | 10 August 2021, 22:26:10 UTC |
d249fa0 | Andrew Adams | 06 August 2021, 19:24:14 UTC | Update tutorial todos (#6161) This is based on our discussion in the dev meeting. Feel free to suggest changes. | 06 August 2021, 19:24:14 UTC |
451cfa8 | Steven Johnson | 06 August 2021, 15:58:33 UTC | Add argv and metadata support to C++ backend (Issue #2071) (#6179) * Add argv and metadata support to C++ backend (Issue #2071) * legalize_name-> c_print_name * Fix user_context handling | 06 August 2021, 15:58:33 UTC |
2e229f5 | Evan Lee | 04 August 2021, 04:54:30 UTC | Rewrite Rules Evaluation Project - Merging Relevant Synthesized Rewrite Rules (#6174) Conducted experiments to analyze the performance effects of adding 4000+ synthesized rewrite rules to Halide. Narrowed down the rules to 11 rewrite rules whose associative & commutative variants are added in this PR. With these rewrite rules, Halide achieves >10% peak memory reductions in 192 cases in apps including camera_pipe, harris, nl_means, and stencil_chain, which is similar to the results (with all 4000+ rules) from this paper - https://dl.acm.org/doi/pdf/10.1145/3428234 | 04 August 2021, 04:54:30 UTC |
8b26454 | Steven Johnson | 03 August 2021, 20:06:53 UTC | Add more fine-grained prefetch() directive (Issue #3735) (#6155) Add more fine-grained prefetch() directive (Issue #3735) | 03 August 2021, 20:06:53 UTC |
4f8629c | Steven Johnson | 03 August 2021, 00:49:54 UTC | Fix broken wasm-simd extmul instructions due to changes from https://reviews.llvm.org/D106724 (#6177) | 03 August 2021, 00:49:54 UTC |
0a09bfb | Steven Johnson | 02 August 2021, 21:14:12 UTC | Fix for trunk LLVM (#6176) * Fix for trunk LLVM * More Fixes | 02 August 2021, 21:14:12 UTC |
e52d6ca | Alex Reinking | 31 July 2021, 04:43:06 UTC | Fix Xcode issue that requires at least one source file when building a library from objects. (#6175) * Fix Xcode issue that requires at least one source file when building a library from objects. Fixes #6167 * add newline to end of file | 31 July 2021, 04:43:06 UTC |
a7e8c43 | Dillon Sharlet | 29 July 2021, 15:53:11 UTC | Partial revert of 8f849ae6514e83f8bf94d05e452a467df352f74c (only (#6173) reverting halide_remote.cpp). | 29 July 2021, 15:53:11 UTC |
36f6b8c | Alex Reinking | 28 July 2021, 17:53:33 UTC | Use generic build command instead of make. Fixes #6163 (#6169) | 28 July 2021, 17:53:33 UTC |
2b8ec44 | Steven Johnson | 27 July 2021, 14:57:41 UTC | Remove deprecated realize() Python wrapprs (#6162) The C++ versions were removed in #6122, but the Python equivalents were overlooked. | 27 July 2021, 14:57:41 UTC |
a5585cb | Alexander Root | 27 July 2021, 02:07:40 UTC | Add various bounds-related simplifier rules (#6160) * add simplifier rules | 27 July 2021, 02:07:40 UTC |
2ab9a56 | Shoaib Kamil | 24 July 2021, 13:55:32 UTC | De-predicate loads and stores in Metal/OpenCL/D3D12 backend (#6158) * Depredicate loads and stores in Metal backend * Fix typo. * Mark override, add additional using * float_t -> float * Update CMakeLists.txt * clang-format * Also scalarize in D3D12 and OpenCL * use const_true() helper | 24 July 2021, 13:55:32 UTC |
b68393c | Steven Johnson | 21 July 2021, 23:08:12 UTC | [hannk] Add a --csv flag to compare_vs_tflite (#6149) * [hannk] Add optional taskset support to the run_on_device scripts * [hannk] Add a --csv flag to compare_vs_tflite This lets us output results in CSV format for easy copy/paste into (eg) spreadsheets. | 21 July 2021, 23:08:12 UTC |
025a9b9 | Dillon Sharlet | 21 July 2021, 22:11:55 UTC | Handle depth_multiplier != 1 in a separate op (#6154) * Implement depth_multiplier != 1 in a separate op. * Fix build on GCC * Remove stale comment * clang-format * Add more comments to inv_depth_multiplier | 21 July 2021, 22:11:55 UTC |