[builtin_object_size] Basic support for posix_memalign
It actually implements support for seeing through loads, using alias analysis to refine the result. This is rather limited, but I didn't want to rely on more than available analysis at that point (to be gentle with compilation time), and it does seem to catch common scenario, as showcased by the included tests. Differential Revision: https://reviews.llvm.org/D122431
Showing
- llvm/include/llvm/Analysis/MemoryBuiltins.h 10 additions, 2 deletionsllvm/include/llvm/Analysis/MemoryBuiltins.h
- llvm/lib/Analysis/MemoryBuiltins.cpp 136 additions, 5 deletionsllvm/lib/Analysis/MemoryBuiltins.cpp
- llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp 1 addition, 1 deletionllvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
- llvm/lib/Transforms/InstCombine/InstructionCombining.cpp 1 addition, 1 deletionllvm/lib/Transforms/InstCombine/InstructionCombining.cpp
- llvm/test/Transforms/LowerConstantIntrinsics/builtin-object-size-load.ll 45 additions, 0 deletions...forms/LowerConstantIntrinsics/builtin-object-size-load.ll
- llvm/test/Transforms/LowerConstantIntrinsics/builtin-object-size-posix-memalign.ll 219 additions, 0 deletions...rConstantIntrinsics/builtin-object-size-posix-memalign.ll
Loading
Please register or sign in to comment