Allow the use of an alternate symbol for calculating a function's size.
authorHal Finkel <hfinkel@anl.gov>
Wed, 22 Feb 2012 21:11:47 +0000 (21:11 +0000)
committerHal Finkel <hfinkel@anl.gov>
Wed, 22 Feb 2012 21:11:47 +0000 (21:11 +0000)
commitd55a2664f9493a4c3be242a75d339fac0ebe2e21
tree9d8ab0c9cdcdc7648633e9e839c955c503ad73ef
parent13b151c111de2dbd37aea7cdf1ca46d78073e066
Allow the use of an alternate symbol for calculating a function's size.

The standard function epilog includes a .size directive, but ppc64 uses
an alternate local symbol to tag the actual start of each function.

Until recently, binutils accepted the .size directive as:
 .size test1, .Ltmp0-test1
however, using this directive with recent binutils will result in the error:
 .size expression for XXX does not evaluate to a constant
so we must use the label which actually tags the start of the function.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151200 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/CodeGen/AsmPrinter.h
lib/CodeGen/AsmPrinter/AsmPrinter.cpp
lib/Target/PowerPC/PPCAsmPrinter.cpp
test/CodeGen/PowerPC/ppc64-linux-func-size.ll [new file with mode: 0644]