Revision 22a302bc93e1fdc035972e2313ac26a1aab952f8 authored by Steven Johnson on 08 December 2022, 23:59:07 UTC, committed by Steven Johnson on 08 December 2022, 23:59:07 UTC
This makes a couple of changes to the behavior/implementation of `halide_malloc()`:

* Currently, halide_malloc must return a pointer aligned to the maximum meaningful alignment for the platform for the purpose of vector loads and stores. This PR also adds the requirement that the memory returned must be legal to access in an integral multple of alignment >= the requested size (in other words: you should be able to do vector load/stores "off the end" without causing any faults).

* Currently, the `halide_malloc_alignment()` function is used to determine the default alignment; this cannot be overridden by user code (well, it can be, but the override will have no useful effect). It is intended to be "internal only" but is used in at least one place outside the runtime (apps/hannk). This change removes the call entirely, in favor of a call that is harder to access from outside the runtime and much less likely for end users to attempt to call. (It also changes apps/hannk to stop using it.)
1 parent 8fa8221
History
File Mode Size
autoschedulers
runtime
AbstractGenerator.cpp -rw-r--r-- 11.4 KB
AbstractGenerator.h -rw-r--r-- 9.2 KB
AddAtomicMutex.cpp -rw-r--r-- 15.4 KB
AddAtomicMutex.h -rw-r--r-- 1.0 KB
AddImageChecks.cpp -rw-r--r-- 33.6 KB
AddImageChecks.h -rw-r--r-- 981 bytes
AddParameterChecks.cpp -rw-r--r-- 4.0 KB
AddParameterChecks.h -rw-r--r-- 603 bytes
AlignLoads.cpp -rw-r--r-- 6.7 KB
AlignLoads.h -rw-r--r-- 790 bytes
AllocationBoundsInference.cpp -rw-r--r-- 6.2 KB
AllocationBoundsInference.h -rw-r--r-- 738 bytes
ApplySplit.cpp -rw-r--r-- 9.3 KB
ApplySplit.h -rw-r--r-- 2.7 KB
Argument.cpp -rw-r--r-- 1.3 KB
Argument.h -rw-r--r-- 3.5 KB
AssociativeOpsTable.cpp -rw-r--r-- 14.7 KB
AssociativeOpsTable.h -rw-r--r-- 2.2 KB
Associativity.cpp -rw-r--r-- 36.9 KB
Associativity.h -rw-r--r-- 3.4 KB
AsyncProducers.cpp -rw-r--r-- 24.6 KB
AsyncProducers.h -rw-r--r-- 430 bytes
AutoScheduleUtils.cpp -rw-r--r-- 14.0 KB
AutoScheduleUtils.h -rw-r--r-- 5.1 KB
BoundSmallAllocations.cpp -rw-r--r-- 6.6 KB
BoundSmallAllocations.h -rw-r--r-- 610 bytes
BoundaryConditions.cpp -rw-r--r-- 7.9 KB
BoundaryConditions.h -rw-r--r-- 10.1 KB
Bounds.cpp -rw-r--r-- 146.5 KB
Bounds.h -rw-r--r-- 7.1 KB
BoundsInference.cpp -rw-r--r-- 59.8 KB
BoundsInference.h -rw-r--r-- 993 bytes
Buffer.cpp -rw-r--r-- 1.4 KB
Buffer.h -rw-r--r-- 25.2 KB
CMakeLists.txt -rw-r--r-- 15.7 KB
CPlusPlusMangle.cpp -rw-r--r-- 58.3 KB
CPlusPlusMangle.h -rw-r--r-- 898 bytes
CSE.cpp -rw-r--r-- 16.3 KB
CSE.h -rw-r--r-- 1.2 KB
Callable.cpp -rw-r--r-- 8.2 KB
Callable.h -rw-r--r-- 15.4 KB
CanonicalizeGPUVars.cpp -rw-r--r-- 6.8 KB
CanonicalizeGPUVars.h -rw-r--r-- 536 bytes
ClampUnsafeAccesses.cpp -rw-r--r-- 4.1 KB
ClampUnsafeAccesses.h -rw-r--r-- 718 bytes
Closure.cpp -rw-r--r-- 5.4 KB
Closure.h -rw-r--r-- 3.1 KB
CodeGen_ARM.cpp -rw-r--r-- 78.7 KB
CodeGen_C.cpp -rw-r--r-- 127.5 KB
CodeGen_C.h -rw-r--r-- 9.6 KB
CodeGen_D3D12Compute_Dev.cpp -rw-r--r-- 51.0 KB
CodeGen_D3D12Compute_Dev.h -rw-r--r-- 424 bytes
CodeGen_GPU_Dev.cpp -rw-r--r-- 6.5 KB
CodeGen_GPU_Dev.h -rw-r--r-- 3.8 KB
CodeGen_Hexagon.cpp -rw-r--r-- 97.0 KB
CodeGen_Internal.cpp -rw-r--r-- 31.8 KB
CodeGen_Internal.h -rw-r--r-- 3.8 KB
CodeGen_LLVM.cpp -rw-r--r-- 221.4 KB
CodeGen_LLVM.h -rw-r--r-- 29.5 KB
CodeGen_MIPS.cpp -rw-r--r-- 1.6 KB
CodeGen_Metal_Dev.cpp -rw-r--r-- 29.1 KB
CodeGen_Metal_Dev.h -rw-r--r-- 408 bytes
CodeGen_OpenCL_Dev.cpp -rw-r--r-- 47.6 KB
CodeGen_OpenCL_Dev.h -rw-r--r-- 391 bytes
CodeGen_OpenGLCompute_Dev.cpp -rw-r--r-- 34.7 KB
CodeGen_OpenGLCompute_Dev.h -rw-r--r-- 428 bytes
CodeGen_PTX_Dev.cpp -rw-r--r-- 31.0 KB
CodeGen_PTX_Dev.h -rw-r--r-- 376 bytes
CodeGen_Posix.cpp -rw-r--r-- 16.5 KB
CodeGen_Posix.h -rw-r--r-- 4.2 KB
CodeGen_PowerPC.cpp -rw-r--r-- 7.4 KB
CodeGen_PyTorch.cpp -rw-r--r-- 7.2 KB
CodeGen_PyTorch.h -rw-r--r-- 1.1 KB
CodeGen_RISCV.cpp -rw-r--r-- 16.1 KB
CodeGen_Targets.h -rw-r--r-- 871 bytes
CodeGen_WebAssembly.cpp -rw-r--r-- 14.4 KB
CodeGen_X86.cpp -rw-r--r-- 43.3 KB
CompilerLogger.cpp -rw-r--r-- 10.6 KB
CompilerLogger.h -rw-r--r-- 4.3 KB
ConciseCasts.h -rw-r--r-- 2.7 KB
Debug.cpp -rw-r--r-- 366 bytes
Debug.h -rw-r--r-- 1.6 KB
DebugArguments.cpp -rw-r--r-- 1.4 KB
DebugArguments.h -rw-r--r-- 541 bytes
DebugToFile.cpp -rw-r--r-- 5.3 KB
DebugToFile.h -rw-r--r-- 740 bytes
Definition.cpp -rw-r--r-- 5.7 KB
Definition.h -rw-r--r-- 4.1 KB
Deinterleave.cpp -rw-r--r-- 28.1 KB
Deinterleave.h -rw-r--r-- 839 bytes
Derivative.cpp -rw-r--r-- 84.4 KB
Derivative.h -rw-r--r-- 2.4 KB
DerivativeUtils.cpp -rw-r--r-- 17.2 KB
DerivativeUtils.h -rw-r--r-- 3.8 KB
DeviceAPI.h -rw-r--r-- 1.2 KB
DeviceArgument.cpp -rw-r--r-- 2.5 KB
DeviceArgument.h -rw-r--r-- 3.5 KB
DeviceInterface.cpp -rw-r--r-- 6.8 KB
DeviceInterface.h -rw-r--r-- 2.1 KB
Dimension.cpp -rw-r--r-- 2.7 KB
Dimension.h -rw-r--r-- 2.9 KB
EarlyFree.cpp -rw-r--r-- 4.6 KB
EarlyFree.h -rw-r--r-- 608 bytes
Elf.cpp -rw-r--r-- 34.5 KB
Elf.h -rw-r--r-- 16.0 KB
EliminateBoolVectors.cpp -rw-r--r-- 11.8 KB
EliminateBoolVectors.h -rw-r--r-- 1.6 KB
EmulateFloat16Math.cpp -rw-r--r-- 6.4 KB
EmulateFloat16Math.h -rw-r--r-- 820 bytes
Error.cpp -rw-r--r-- 6.1 KB
Error.h -rw-r--r-- 7.3 KB
Expr.cpp -rw-r--r-- 3.0 KB
Expr.h -rw-r--r-- 12.2 KB
ExprUsesVar.h -rw-r--r-- 4.5 KB
Extern.h -rw-r--r-- 8.2 KB
ExternFuncArgument.h -rw-r--r-- 1.8 KB
ExtractTileOperations.cpp -rw-r--r-- 23.0 KB
ExtractTileOperations.h -rw-r--r-- 503 bytes
FastIntegerDivide.cpp -rw-r--r-- 9.2 KB
FastIntegerDivide.h -rw-r--r-- 1.5 KB
FindCalls.cpp -rw-r--r-- 2.8 KB
FindCalls.h -rw-r--r-- 1.2 KB
FindIntrinsics.cpp -rw-r--r-- 57.2 KB
FindIntrinsics.h -rw-r--r-- 1.7 KB
FlattenNestedRamps.cpp -rw-r--r-- 6.2 KB
FlattenNestedRamps.h -rw-r--r-- 441 bytes
Float16.cpp -rw-r--r-- 34.7 KB
Float16.h -rw-r--r-- 8.0 KB
Func.cpp -rw-r--r-- 125.7 KB
Func.h -rw-r--r-- 106.0 KB
Function.cpp -rw-r--r-- 41.7 KB
Function.h -rw-r--r-- 12.5 KB
FunctionPtr.h -rw-r--r-- 2.6 KB
FuseGPUThreadLoops.cpp -rw-r--r-- 60.2 KB
FuseGPUThreadLoops.h -rw-r--r-- 969 bytes
FuzzFloatStores.cpp -rw-r--r-- 910 bytes
FuzzFloatStores.h -rw-r--r-- 759 bytes
Generator.cpp -rw-r--r-- 85.7 KB
Generator.h -rw-r--r-- 156.1 KB
HexagonAlignment.h -rw-r--r-- 2.4 KB
HexagonOffload.cpp -rw-r--r-- 42.0 KB
HexagonOffload.h -rw-r--r-- 703 bytes
HexagonOptimize.cpp -rw-r--r-- 108.0 KB
HexagonOptimize.h -rw-r--r-- 1.6 KB
IR.cpp -rw-r--r-- 42.6 KB
IR.h -rw-r--r-- 30.8 KB
IREquality.cpp -rw-r--r-- 20.9 KB
IREquality.h -rw-r--r-- 3.5 KB
IRMatch.cpp -rw-r--r-- 17.0 KB
IRMatch.h -rw-r--r-- 101.9 KB
IRMutator.cpp -rw-r--r-- 11.4 KB
IRMutator.h -rw-r--r-- 4.9 KB
IROperator.cpp -rw-r--r-- 92.3 KB
IROperator.h -rw-r--r-- 63.4 KB
IRPrinter.cpp -rw-r--r-- 26.6 KB
IRPrinter.h -rw-r--r-- 6.8 KB
IRVisitor.cpp -rw-r--r-- 10.2 KB
IRVisitor.h -rw-r--r-- 14.2 KB
ImageParam.cpp -rw-r--r-- 2.4 KB
ImageParam.h -rw-r--r-- 4.4 KB
InferArguments.cpp -rw-r--r-- 8.8 KB
InferArguments.h -rw-r--r-- 1.1 KB
InjectHostDevBufferCopies.cpp -rw-r--r-- 29.1 KB
InjectHostDevBufferCopies.h -rw-r--r-- 681 bytes
Inline.cpp -rw-r--r-- 7.4 KB
Inline.h -rw-r--r-- 769 bytes
InlineReductions.cpp -rw-r--r-- 9.3 KB
InlineReductions.h -rw-r--r-- 3.4 KB
IntegerDivisionTable.cpp -rw-r--r-- 120.8 KB
IntegerDivisionTable.h -rw-r--r-- 1.2 KB
Interval.cpp -rw-r--r-- 6.7 KB
Interval.h -rw-r--r-- 5.3 KB
Introspection.cpp -rw-r--r-- 92.8 KB
Introspection.h -rw-r--r-- 5.3 KB
IntrusivePtr.h -rw-r--r-- 4.8 KB
JITModule.cpp -rw-r--r-- 44.9 KB
JITModule.h -rw-r--r-- 13.1 KB
LICM.cpp -rw-r--r-- 21.0 KB
LICM.h -rw-r--r-- 697 bytes
LLVM_Headers.h -rw-r--r-- 3.8 KB
LLVM_Output.cpp -rw-r--r-- 22.4 KB
LLVM_Output.h -rw-r--r-- 1.7 KB
LLVM_Runtime_Linker.cpp -rw-r--r-- 58.0 KB
LLVM_Runtime_Linker.h -rw-r--r-- 1.5 KB
Lambda.cpp -rw-r--r-- 970 bytes
Lambda.h -rw-r--r-- 2.0 KB
Lerp.cpp -rw-r--r-- 7.8 KB
Lerp.h -rw-r--r-- 670 bytes
LoopCarry.cpp -rw-r--r-- 19.5 KB
LoopCarry.h -rw-r--r-- 598 bytes
Lower.cpp -rw-r--r-- 21.6 KB
Lower.h -rw-r--r-- 1.9 KB
LowerParallelTasks.cpp -rw-r--r-- 17.3 KB
LowerParallelTasks.h -rw-r--r-- 540 bytes
LowerWarpShuffles.cpp -rw-r--r-- 32.1 KB
LowerWarpShuffles.h -rw-r--r-- 496 bytes
MainPage.h -rw-r--r-- 2.5 KB
Memoization.cpp -rw-r--r-- 23.6 KB
Memoization.h -rw-r--r-- 1.2 KB
Module.cpp -rw-r--r-- 46.4 KB
Module.h -rw-r--r-- 8.3 KB
ModulusRemainder.cpp -rw-r--r-- 17.5 KB
ModulusRemainder.h -rw-r--r-- 3.9 KB
Monotonic.cpp -rw-r--r-- 22.3 KB
Monotonic.h -rw-r--r-- 1.2 KB
ObjectInstanceRegistry.cpp -rw-r--r-- 2.5 KB
ObjectInstanceRegistry.h -rw-r--r-- 3.3 KB
OffloadGPULoops.cpp -rw-r--r-- 12.6 KB
OffloadGPULoops.h -rw-r--r-- 573 bytes
OutputImageParam.cpp -rw-r--r-- 2.9 KB
OutputImageParam.h -rw-r--r-- 4.3 KB
ParallelRVar.cpp -rw-r--r-- 5.0 KB
ParallelRVar.h -rw-r--r-- 727 bytes
Param.h -rw-r--r-- 14.0 KB
ParamMap.cpp -rw-r--r-- 1.6 KB
ParamMap.h -rw-r--r-- 3.1 KB
Parameter.cpp -rw-r--r-- 11.1 KB
Parameter.h -rw-r--r-- 6.0 KB
PartitionLoops.cpp -rw-r--r-- 40.1 KB
PartitionLoops.h -rw-r--r-- 801 bytes
Pipeline.cpp -rw-r--r-- 46.3 KB
Pipeline.h -rw-r--r-- 25.1 KB
Prefetch.cpp -rw-r--r-- 18.9 KB
Prefetch.h -rw-r--r-- 2.0 KB
PrefetchDirective.h -rw-r--r-- 1.6 KB
PrintLoopNest.cpp -rw-r--r-- 6.6 KB
PrintLoopNest.h -rw-r--r-- 568 bytes
Profiling.cpp -rw-r--r-- 19.4 KB
Profiling.h -rw-r--r-- 1.6 KB
PurifyIndexMath.cpp -rw-r--r-- 793 bytes
PurifyIndexMath.h -rw-r--r-- 756 bytes
PythonExtensionGen.cpp -rw-r--r-- 19.0 KB
PythonExtensionGen.h -rw-r--r-- 528 bytes
Qualify.cpp -rw-r--r-- 922 bytes
Qualify.h -rw-r--r-- 423 bytes
RDom.cpp -rw-r--r-- 7.5 KB
RDom.h -rw-r--r-- 11.2 KB
Random.cpp -rw-r--r-- 4.8 KB
Random.h -rw-r--r-- 1014 bytes
Realization.cpp -rw-r--r-- 1.1 KB
Realization.h -rw-r--r-- 2.3 KB
RealizationOrder.cpp -rw-r--r-- 16.3 KB
RealizationOrder.h -rw-r--r-- 1.7 KB
RebaseLoopsToZero.cpp -rw-r--r-- 1.3 KB
RebaseLoopsToZero.h -rw-r--r-- 356 bytes
Reduction.cpp -rw-r--r-- 6.0 KB
Reduction.h -rw-r--r-- 3.4 KB
RegionCosts.cpp -rw-r--r-- 27.8 KB
RegionCosts.h -rw-r--r-- 6.7 KB
RemoveDeadAllocations.cpp -rw-r--r-- 2.4 KB
RemoveDeadAllocations.h -rw-r--r-- 547 bytes
RemoveExternLoops.cpp -rw-r--r-- 638 bytes
RemoveExternLoops.h -rw-r--r-- 373 bytes
RemoveUndef.cpp -rw-r--r-- 17.3 KB
RemoveUndef.h -rw-r--r-- 397 bytes
Schedule.cpp -rw-r--r-- 17.9 KB
Schedule.h -rw-r--r-- 27.2 KB
ScheduleFunctions.cpp -rw-r--r-- 103.5 KB
ScheduleFunctions.h -rw-r--r-- 934 bytes
Scope.h -rw-r--r-- 9.7 KB
SelectGPUAPI.cpp -rw-r--r-- 1.4 KB
SelectGPUAPI.h -rw-r--r-- 570 bytes
Simplify.cpp -rw-r--r-- 15.5 KB
Simplify.h -rw-r--r-- 1.5 KB
SimplifyCorrelatedDifferences.cpp -rw-r--r-- 10.3 KB
SimplifyCorrelatedDifferences.h -rw-r--r-- 2.6 KB
SimplifySpecializations.cpp -rw-r--r-- 5.5 KB
SimplifySpecializations.h -rw-r--r-- 530 bytes
Simplify_Add.cpp -rw-r--r-- 11.6 KB
Simplify_And.cpp -rw-r--r-- 4.5 KB
Simplify_Call.cpp -rw-r--r-- 32.1 KB
Simplify_Cast.cpp -rw-r--r-- 6.3 KB
Simplify_Div.cpp -rw-r--r-- 13.9 KB
Simplify_EQ.cpp -rw-r--r-- 5.3 KB
Simplify_Exprs.cpp -rw-r--r-- 15.9 KB
Simplify_Internal.h -rw-r--r-- 11.4 KB
Simplify_LT.cpp -rw-r--r-- 29.8 KB
Simplify_Let.cpp -rw-r--r-- 11.7 KB
Simplify_Max.cpp -rw-r--r-- 16.7 KB
Simplify_Min.cpp -rw-r--r-- 17.2 KB
Simplify_Mod.cpp -rw-r--r-- 4.6 KB
Simplify_Mul.cpp -rw-r--r-- 5.2 KB
Simplify_Not.cpp -rw-r--r-- 1.1 KB
Simplify_Or.cpp -rw-r--r-- 4.1 KB
Simplify_Reinterpret.cpp -rw-r--r-- 1.2 KB
Simplify_Select.cpp -rw-r--r-- 16.0 KB
Simplify_Shuffle.cpp -rw-r--r-- 14.6 KB
Simplify_Stmts.cpp -rw-r--r-- 25.7 KB
Simplify_Sub.cpp -rw-r--r-- 29.5 KB
SkipStages.cpp -rw-r--r-- 16.5 KB
SkipStages.h -rw-r--r-- 683 bytes
SlidingWindow.cpp -rw-r--r-- 35.0 KB
SlidingWindow.h -rw-r--r-- 638 bytes
Solve.cpp -rw-r--r-- 54.8 KB
Solve.h -rw-r--r-- 2.1 KB
SpirvIR.cpp -rw-r--r-- 54.8 KB
SpirvIR.h -rw-r--r-- 22.0 KB
SplitTuples.cpp -rw-r--r-- 18.6 KB
SplitTuples.h -rw-r--r-- 621 bytes
StmtToHtml.cpp -rw-r--r-- 37.5 KB
StmtToHtml.h -rw-r--r-- 538 bytes
StorageFlattening.cpp -rw-r--r-- 18.7 KB
StorageFlattening.h -rw-r--r-- 795 bytes
StorageFolding.cpp -rw-r--r-- 45.5 KB
StorageFolding.h -rw-r--r-- 833 bytes
StrictifyFloat.cpp -rw-r--r-- 2.0 KB
StrictifyFloat.h -rw-r--r-- 840 bytes
Substitute.cpp -rw-r--r-- 6.1 KB
Substitute.h -rw-r--r-- 2.2 KB
Target.cpp -rw-r--r-- 44.6 KB
Target.h -rw-r--r-- 15.7 KB
ThreadPool.h -rw-r--r-- 4.7 KB
Tracing.cpp -rw-r--r-- 19.2 KB
Tracing.h -rw-r--r-- 837 bytes
TrimNoOps.cpp -rw-r--r-- 15.1 KB
TrimNoOps.h -rw-r--r-- 441 bytes
Tuple.cpp -rw-r--r-- 401 bytes
Tuple.h -rw-r--r-- 1.6 KB
Type.cpp -rw-r--r-- 10.8 KB
Type.h -rw-r--r-- 20.1 KB
UnifyDuplicateLets.cpp -rw-r--r-- 3.0 KB
UnifyDuplicateLets.h -rw-r--r-- 451 bytes
UniquifyVariableNames.cpp -rw-r--r-- 7.0 KB
UniquifyVariableNames.h -rw-r--r-- 539 bytes
UnpackBuffers.cpp -rw-r--r-- 4.8 KB
UnpackBuffers.h -rw-r--r-- 567 bytes
UnrollLoops.cpp -rw-r--r-- 4.4 KB
UnrollLoops.h -rw-r--r-- 443 bytes
UnsafePromises.cpp -rw-r--r-- 2.0 KB
UnsafePromises.h -rw-r--r-- 622 bytes
Util.cpp -rw-r--r-- 27.7 KB
Util.h -rw-r--r-- 18.2 KB
Var.cpp -rw-r--r-- 879 bytes
Var.h -rw-r--r-- 5.9 KB
VectorizeLoops.cpp -rw-r--r-- 62.1 KB
VectorizeLoops.h -rw-r--r-- 584 bytes
WasmExecutor.cpp -rw-r--r-- 101.0 KB
WasmExecutor.h -rw-r--r-- 1.4 KB
WrapCalls.cpp -rw-r--r-- 7.7 KB
WrapCalls.h -rw-r--r-- 510 bytes
exported_symbols.ldscript -rw-r--r-- 441 bytes
exported_symbols.osx -rw-r--r-- 213 bytes

back to top