[LLVMbugs] [Bug 14363] New: Inline heuristic does not account for the number of callers
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Fri Nov 16 10:38:29 PST 2012
http://llvm.org/bugs/show_bug.cgi?id=14363
Bug #: 14363
Summary: Inline heuristic does not account for the number of
callers
Product: new-bugs
Version: trunk
Platform: PC
OS/Version: Linux
Status: NEW
Severity: enhancement
Priority: P
Component: new bugs
AssignedTo: unassignedbugs at nondot.org
ReportedBy: spop at codeaurora.org
CC: chandlerc at gmail.com, llvmbugs at cs.uiuc.edu
Classification: Unclassified
Hi,
LLVM inlines functions without looking at how many call sites the inline
function has.
$ cat test.c
#define M D D
#define D C C C C C
#define C L L
#define L X X X X X
#define X V V
#define V I I I I I
#define I b();
extern void c(void);
static void b(void) {
const int N = 20;
int B[N];
for (int i = 0; i < N; i++)
B[i] = (10 - i) * ((i == 2) ? -i : i);
int A[N + 5];
for (int i = 1; i < N; i++)
A[i] = B[i] - B[i-1];
for (int i = 1; i < N; i++)
if (A[i] < B[i])
c();
}
void a(void) {
M;
}
$ clang -O3 test.c -emit-llvm -S -o test.ll
$ wc -l test.ll
54030 test.ll
A possible solution is to add another threshold to bound the overall code size
increase due to inlining a function.
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
More information about the llvm-bugs
mailing list