History log of /llvm-project/llvm/lib/Transforms/Utils/InlineFunction.cpp (Results 476 – 500 of 636)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 7b0a5fd2 27-Jul-2010 Gabor Greif <ggreif@gmail.com>

simplify: CallSite::get --> CallSite constructor

llvm-svn: 109506


# 42f620cc 24-Jun-2010 Gabor Greif <ggreif@gmail.com>

use callsite to obtain all arguments

llvm-svn: 106728


# 0dc3c2d3 24-Jun-2010 Devang Patel <dpatel@apple.com>

Use ValueMap instead of DenseMap.
The ValueMapper used by various cloning utility maps MDNodes also.

llvm-svn: 106706


# b8f11de1 23-Jun-2010 Devang Patel <dpatel@apple.com>

Cosmetic change.
Do not use "ValueMap" as a name for a local variable or an argument.

llvm-svn: 106698


# 4c904fa7 31-May-2010 Duncan Sands <baldrick@free.fr>

Fix PR7272: when inlining through a callsite with byval arguments,
the newly created allocas may be used by inlined calls, so these
need to have their tail call flags cleared. Fixes PR7272.

llvm-sv

Fix PR7272: when inlining through a callsite with byval arguments,
the newly created allocas may be used by inlined calls, so these
need to have their tail call flags cleared. Fixes PR7272.

llvm-svn: 105255

show more ...


# c2432b9d 01-May-2010 Chris Lattner <sabre@nondot.org>

rename InlineInfo.DevirtualizedCalls -> InlinedCalls to
reflect that it includes all inlined calls now, not just
devirtualized ones.

llvm-svn: 102824


# fc8d9ee6 01-May-2010 Chris Lattner <sabre@nondot.org>

Implement rdar://6295824 and PR6724 with two tiny changes
that can have a big effect :). The first is to enable the
iterative SCC passmanager juice that kicks in when the
scc passmgr detects that a

Implement rdar://6295824 and PR6724 with two tiny changes
that can have a big effect :). The first is to enable the
iterative SCC passmanager juice that kicks in when the
scc passmgr detects that a function pass has devirtualized
a call. In this case, it will rerun all the passes it
manages on the SCC, up to the iteration count limit (4). This
is useful because a function pass may devirualize a call, and
we want the inliner to inline it, or pruneeh to infer stuff
about it, etc.

The second patch is to add *all* call sites to the
DevirtualizedCalls list the inliner uses. This list is
about to get renamed, but the jist of this is that the
inliner now reconsiders *all* inlined call sites as candidates
for further inlining. The intuition is this that in cases
like this:

f() { g(1); } g(int x) { h(x); }

We analyze this bottom up, and may decide that it isn't
profitable to inline H into G. Next step, we decide that it is
profitable to inline G into F, and do so, which means that F
now calls H. Even though the call from G -> H may not have been
profitable to inline, the call from F -> H may be (in this case
because a constant allows folding etc).

In my spot checks, this doesn't have a big impact on code. For
example, the LLC output for 252.eon grew from 0.02% (from
317252 to 317308) and 176.gcc actually shrunk by .3% (from 1525612
to 1520964 bytes). 252.eon never iterated in the SCC Passmgr,
176.gcc iterated at most 1 time.

llvm-svn: 102823

show more ...


Revision tags: llvmorg-2.7.0
# c691de3b 23-Apr-2010 Chris Lattner <sabre@nondot.org>

switch InlineInfo.DevirtualizedCalls's list to be of WeakVH.
This fixes a bug where calls inlined into an invoke would get
changed into an invoke but the array would keep pointing to
the (now dead) c

switch InlineInfo.DevirtualizedCalls's list to be of WeakVH.
This fixes a bug where calls inlined into an invoke would get
changed into an invoke but the array would keep pointing to
the (now dead) call. The improved inliner behavior is still
disabled for now.

llvm-svn: 102196

show more ...


# 2eee5d34 22-Apr-2010 Chris Lattner <sabre@nondot.org>

The inliner was choosing to not consider call sites
that appear in the SCC as a result of inlining as candidates
for inlining. Change this so that it *does* consider call
sites that change from bei

The inliner was choosing to not consider call sites
that appear in the SCC as a result of inlining as candidates
for inlining. Change this so that it *does* consider call
sites that change from being indirect to being direct as a
result of inlining. This allows it to completely
"devirtualize" the testcase.

llvm-svn: 102146

show more ...


# 4ba01ec8 22-Apr-2010 Chris Lattner <sabre@nondot.org>

refactor the interface to InlineFunction so that most of the in/out
arguments are handled with a new InlineFunctionInfo class. This
makes it easier to extend InlineFunction to return more info in t

refactor the interface to InlineFunction so that most of the in/out
arguments are handled with a new InlineFunctionInfo class. This
makes it easier to extend InlineFunction to return more info in the
future.

llvm-svn: 102137

show more ...


# 016c00a3 22-Apr-2010 Chris Lattner <sabre@nondot.org>

when inlining something like this:

define void @f3(void (i8*)* %__f) ssp {
entry:
call void %__f(i8* undef)
unreachable
}

define void @f4(i8* %this) ssp align 2 {
entry:
call void @f3(void (i

when inlining something like this:

define void @f3(void (i8*)* %__f) ssp {
entry:
call void %__f(i8* undef)
unreachable
}

define void @f4(i8* %this) ssp align 2 {
entry:
call void @f3(void (i8*)* @f2) ssp
ret void
}

The inliner is turning the indirect call to %__f into a direct
call to F2. Make the call graph more precise when this happens.

The inliner doesn't revisit call sites introduced by inlining,
so there isn't an easy way to test for this, but a more precise
callgraph is a good thing.

llvm-svn: 102131

show more ...


# 0a3b5b4e 22-Apr-2010 Chris Lattner <sabre@nondot.org>

eliminate dead #include.

llvm-svn: 102119


# 7258dcd7 16-Apr-2010 Eric Christopher <echristo@apple.com>

Revert 101465, it broke internal OpenGL testing.

Probably the best way to know that all getOperand() calls have been handled
is to replace that API instead of updating.

llvm-svn: 101579


# f375520f 16-Apr-2010 Gabor Greif <ggreif@gmail.com>

reapply r101434
with a fix for self-hosting

rotate CallInst operands, i.e. move callee to the back
of the operand array

the motivation for this patch are laid out in my mail to llvm-commits:
more e

reapply r101434
with a fix for self-hosting

rotate CallInst operands, i.e. move callee to the back
of the operand array

the motivation for this patch are laid out in my mail to llvm-commits:
more efficient access to operands and callee, faster callgraph-construction,
smaller compiler binary

llvm-svn: 101465

show more ...


# 403e9694 16-Apr-2010 Gabor Greif <ggreif@gmail.com>

back out r101423 and r101397, they break llvm-gcc self-host on darwin10

llvm-svn: 101434


# 33ae80bf 15-Apr-2010 Gabor Greif <ggreif@gmail.com>

reapply r101364, which has been backed out in r101368
with a fix

rotate CallInst operands, i.e. move callee to the back
of the operand array

the motivation for this patch are laid out in my mail to

reapply r101364, which has been backed out in r101368
with a fix

rotate CallInst operands, i.e. move callee to the back
of the operand array

the motivation for this patch are laid out in my mail to llvm-commits:
more efficient access to operands and callee, faster callgraph-construction,
smaller compiler binary

llvm-svn: 101397

show more ...


# 9fd00c7d 15-Apr-2010 Gabor Greif <ggreif@gmail.com>

back out r101364, as it trips the linux nightlybot on some clang C++ tests

llvm-svn: 101368


# aafd2096 15-Apr-2010 Gabor Greif <ggreif@gmail.com>

rotate CallInst operands, i.e. move callee to the back
of the operand array

the motivation for this patch are laid out in my mail to llvm-commits:
more efficient access to operands and callee, faste

rotate CallInst operands, i.e. move callee to the back
of the operand array

the motivation for this patch are laid out in my mail to llvm-commits:
more efficient access to operands and callee, faster callgraph-construction,
smaller compiler binary

llvm-svn: 101364

show more ...


# c576ee90 04-Apr-2010 Mon P Wang <wangmp@apple.com>

Reapply address space patch after fixing an issue in MemCopyOptimizer.
Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset,
e.g., llvm.memcpy.i32(i8*, i8*, i3

Reapply address space patch after fixing an issue in MemCopyOptimizer.
Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset,
e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1)

llvm-svn: 100304

show more ...


# 999c1b92 02-Apr-2010 Mon P Wang <wangmp@apple.com>

Revert r100191 since it breaks objc in clang

llvm-svn: 100199


# a972ab85 02-Apr-2010 Mon P Wang <wangmp@apple.com>

Reapply address space patch after fixing an issue in MemCopyOptimizer.
Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset,
e.g., llvm.memcpy.i32(i8*, i8*, i3

Reapply address space patch after fixing an issue in MemCopyOptimizer.
Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset,
e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1)

llvm-svn: 100191

show more ...


# 6f7fd288 30-Mar-2010 Bob Wilson <bob.wilson@apple.com>

Revert Mon Ping's change 99928, since it broke all the llvm-gcc buildbots.

llvm-svn: 99948


# 74605713 30-Mar-2010 Mon P Wang <wangmp@apple.com>

Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset,
e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1)
A update o

Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset,
e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1)
A update of langref will occur in a subsequent checkin.

llvm-svn: 99928

show more ...


# 1d38538f 24-Mar-2010 Eric Christopher <echristo@apple.com>

Temporarily revert this, it's causing an issue with an internal project.

llvm-svn: 99451


# 00eeac41 23-Mar-2010 Chris Lattner <sabre@nondot.org>

add some accessors to callsite/callinst/invokeinst to check
for the noinline attribute, and make the inliner refuse to
inline a call site when the call site is marked noinline even
if the callee isn'

add some accessors to callsite/callinst/invokeinst to check
for the noinline attribute, and make the inliner refuse to
inline a call site when the call site is marked noinline even
if the callee isn't. This fixes PR6682.

llvm-svn: 99341

show more ...


1...<<11121314151617181920>>...26