[llvm-dev] allocsize: change from 3.9 to 4.0

Johan Engelen via llvm-dev llvm-dev at lists.llvm.org
Sun Apr 30 04:56:56 PDT 2017

Hi all,
  I added support for the allocsize function attribute to our compiler
(LDC), thinking that that would enable removal of function calls when the
allocated memory is not used.

For example:
declare i8* @my_malloc(i32) allocsize(0)

define void @test_malloc() {
  %1 = call i8* @my_malloc(i32 100)
  ret void
I thought the my_alloc call in test_malloc would be removed, but `opt -O3`
doesn't do that (LLVM 4.0 and trunk). However, LLVM3.9's `opt` _does_
remove the call.

I can't find out why this was changed.
(if the call is to "malloc", it is removed because LLVM recognizes the
function name)

Thanks for the explanation,
Kind regards,
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170430/99f3199d/attachment.html>

More information about the llvm-dev mailing list