History log of /llvm-project/llvm/lib/Transforms/Utils/InlineFunction.cpp (Results 576 – 600 of 636)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 56ed4803 16-Dec-2007 Duncan Sands <baldrick@free.fr>

Revert this part of r45073 until the verifier is
changed not to reject invoke of inline asm.

llvm-svn: 45077


# 8e4847ee 16-Dec-2007 Duncan Sands <baldrick@free.fr>

Make instcombine promote inline asm calls to 'nounwind'
calls. Remove special casing of inline asm from the
inliner. There is a potential problem: the verifier
rejects invokes of inline asm (not su

Make instcombine promote inline asm calls to 'nounwind'
calls. Remove special casing of inline asm from the
inliner. There is a potential problem: the verifier
rejects invokes of inline asm (not sure why). If an
asm call is not marked "nounwind" in some .ll, and
instcombine is not run, but the inliner is run, then
an illegal module will be created. This is bad but
I'm not sure what the best approach is. I'm tempted
to remove the check in the verifier...

llvm-svn: 45073

show more ...


# 38ef3a8e 03-Dec-2007 Duncan Sands <baldrick@free.fr>

Rather than having special rules like "intrinsics cannot
throw exceptions", just mark intrinsics with the nounwind
attribute. Likewise, mark intrinsics as readnone/readonly
and get rid of special al

Rather than having special rules like "intrinsics cannot
throw exceptions", just mark intrinsics with the nounwind
attribute. Likewise, mark intrinsics as readnone/readonly
and get rid of special aliasing logic (which didn't use
anything more than this anyway).

llvm-svn: 44544

show more ...


# ad0ea2d4 27-Nov-2007 Duncan Sands <baldrick@free.fr>

Fix PR1146: parameter attributes are longer part of
the function type, instead they belong to functions
and function calls. This is an updated and slightly
corrected version of Reid Spencer's origin

Fix PR1146: parameter attributes are longer part of
the function type, instead they belong to functions
and function calls. This is an updated and slightly
corrected version of Reid Spencer's original patch.
The only known problem is that auto-upgrading of
bitcode files doesn't seem to work properly (see
test/Bitcode/AutoUpgradeIntrinsics.ll). Hopefully
a bitcode guru (who might that be? :) ) will fix it.

llvm-svn: 44359

show more ...


Revision tags: llvmorg-2.1.0
# 703623d5 27-Aug-2007 David Greene <greened@obbligato.org>

Update InvokeInst to work like CallInst

llvm-svn: 41506


Revision tags: llvmorg-2.0.0
# 343c88cd 15-Apr-2007 Chris Lattner <sabre@nondot.org>

Fix PR1335 and Transforms/Inline/2007-04-15-InlineEH.ll

llvm-svn: 36090


# dcb291fa 22-Mar-2007 Dan Gohman <gohman@apple.com>

Change uses of Function::front to Function::getEntryBlock for readability.

llvm-svn: 35265


# 8c8597c4 20-Feb-2007 Dan Gohman <gohman@apple.com>

Fix typos in comments.

llvm-svn: 34456


# a06a8fd2 13-Feb-2007 Chris Lattner <sabre@nondot.org>

Eliminate use of ctors that take vectors.

llvm-svn: 34219


# 1bfc7ab6 03-Feb-2007 Chris Lattner <sabre@nondot.org>

Switch inliner over to use DenseMap instead of std::map for ValueMap. This
speeds up the inliner 16%.

llvm-svn: 33801


# ad84a730 30-Jan-2007 Chris Lattner <sabre@nondot.org>

The inliner/cloner can now optionally take TargetData info, which can be
used by constant folding.

llvm-svn: 33676


# 5301e7c6 30-Jan-2007 Reid Spencer <rspencer@reidspencer.com>

For PR1136: Rename GlobalVariable::isExternal as isDeclaration to avoid
confusion with external linkage types.

llvm-svn: 33663


# d97f1936 07-Jan-2007 Chris Lattner <sabre@nondot.org>

prepare for adjustment to getOrInsertFunction method

llvm-svn: 32985


# c635f47d 31-Dec-2006 Reid Spencer <rspencer@reidspencer.com>

For PR950:
This patch replaces signed integer types with signless ones:
1. [US]Byte -> Int8
2. [U]Short -> Int16
3. [U]Int -> Int32
4. [U]Long -> Int64.
5. Removal of isSigned, isUnsigned, getSign

For PR950:
This patch replaces signed integer types with signless ones:
1. [US]Byte -> Int8
2. [U]Short -> Int16
3. [U]Int -> Int32
4. [U]Long -> Int64.
5. Removal of isSigned, isUnsigned, getSignedVersion, getUnsignedVersion
and other methods related to signedness. In a few places this warranted
identifying the signedness information from other sources.

llvm-svn: 32785

show more ...


Revision tags: llvmorg-1.9.0
# 6ef6d06d 13-Sep-2006 Chris Lattner <sabre@nondot.org>

Implement the first half of Transforms/Inline/inline_cleanup.ll

llvm-svn: 30303


# fea39741 18-Jul-2006 Chris Lattner <sabre@nondot.org>

silence warnings in a release build

llvm-svn: 29189


# b3c64f7a 12-Jul-2006 Chris Lattner <sabre@nondot.org>

Handle instructions in the map, but that map to a null pointer.
This unbreaks smg2000.

llvm-svn: 29127


# 6148456e 12-Jul-2006 Chris Lattner <sabre@nondot.org>

In addition to deleting calls, the inliner can constant fold them as well.
Handle this case, which doesn't require a new callgraph edge. This fixes
a crash compiling MallocBench/gs.

llvm-svn: 29121


# 5de3b8b2 12-Jul-2006 Chris Lattner <sabre@nondot.org>

Change the callgraph representation to store the callsite along with the
target CG node. This allows the inliner to properly update the callgraph
when using the pruning inliner. The pruning inliner

Change the callgraph representation to store the callsite along with the
target CG node. This allows the inliner to properly update the callgraph
when using the pruning inliner. The pruning inliner may not copy over all
call sites from a callee to a caller, so the edges corresponding to those
call sites should not be copied over either.

This fixes PR827 and Transforms/Inline/2006-07-12-InlinePruneCGUpdate.ll

llvm-svn: 29120

show more ...


# be853d77 27-May-2006 Chris Lattner <sabre@nondot.org>

Switch the inliner over to using CloneAndPruneFunctionInto. This effectively
makes it so that it constant folds instructions on the fly. This is good
for several reasons:

0. Many instructions are

Switch the inliner over to using CloneAndPruneFunctionInto. This effectively
makes it so that it constant folds instructions on the fly. This is good
for several reasons:

0. Many instructions are constant foldable after inlining, particularly if
inlining a call with constant arguments.
1. Without this, the inliner has to allocate memory for all of the instructions
that can be constant folded, then a subsequent pass has to delete them. This
gets the job done without this extra work.
2. This makes the inliner *pass* a bit more aggressive: in particular, it
partially solves a phase order issue where the inliner would inline lots
of code that folds away to nothing, but think that the resultant function
is big because of this code that will be gone. Now the code never exists.

This is the first part of a 2-step process. The second part will be smart
enough to see when this implicit constant folding propagates a constant into
a branch or switch instruction, making CFG edges dead.

This implements Transforms/Inline/inline_constprop.ll

llvm-svn: 28521

show more ...


# 0841fb1d 14-Jan-2006 Chris Lattner <sabre@nondot.org>

Teach the inliner to update the CallGraph itself, and have it add edges to
llvm.stacksave/restore when it inserts calls to them.

llvm-svn: 25320


# 2be0607a 13-Jan-2006 Chris Lattner <sabre@nondot.org>

If inlining a call to a function that contains dynamic allocas, wrap the
resultant code with llvm.stacksave/llvm.stackrestore intrinsics.

llvm-svn: 25286


# e24f79a0 13-Jan-2006 Chris Lattner <sabre@nondot.org>

Use ClonedCodeInfo to avoid another walk over the inlined code, this this
time in common C cases.

llvm-svn: 25285


# 19e6a08d 13-Jan-2006 Chris Lattner <sabre@nondot.org>

Use the ClonedCodeInfo object to avoid scans of the inlined code when
it doesn't contain any calls. This is a fairly common case for C++ code,
so it will probably speed up the inliner marginally in

Use the ClonedCodeInfo object to avoid scans of the inlined code when
it doesn't contain any calls. This is a fairly common case for C++ code,
so it will probably speed up the inliner marginally in these cases.

llvm-svn: 25284

show more ...


# 908d7955 13-Jan-2006 Chris Lattner <sabre@nondot.org>

Refactor a bunch of invoke handling stuff out into a new function
"HandleInlinedInvoke". No functionality change.

llvm-svn: 25283


1...<<212223242526