#
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
|