#
3b18fd7b |
| 20-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Teach InlineFunction how to differentiate between multiple-value return statements and aggregate returns so that it handles both correctly.
llvm-svn: 52519
|
Revision tags: llvmorg-2.3.0 |
|
#
697e94cc |
| 15-May-2008 |
Gabor Greif <ggreif@gmail.com> |
Fix a bunch of 80col violations that arose from the Create API change. Tweak makefile targets to find these better.
llvm-svn: 51143
|
#
4d43d3c7 |
| 25-Apr-2008 |
Nick Lewycky <nicholas@mxc.ca> |
Remove 'unwinds to' support from mainline. This patch undoes r47802 r47989 r48047 r48084 r48085 r48086 r48088 r48096 r48099 r48109 and r48123.
llvm-svn: 50265
|
#
8f83081f |
| 23-Apr-2008 |
Devang Patel <dpatel@apple.com> |
Check type instead of no. of operands.
llvm-svn: 50179
|
#
1416ebf1 |
| 07-Apr-2008 |
Duncan Sands <baldrick@free.fr> |
The "stacksave is not nounwind problem" no longer needs to be fixed here - a previous commit made sure that intrinsics always get the right attributes. So remove no-longer needed code, and while ther
The "stacksave is not nounwind problem" no longer needs to be fixed here - a previous commit made sure that intrinsics always get the right attributes. So remove no-longer needed code, and while there use Intrinsic::getDeclaration rather than getOrInsertFunction.
llvm-svn: 49337
show more ...
|
#
87e484f0 |
| 07-Apr-2008 |
Dale Johannesen <dalej@apple.com> |
Mark calls to llvm.stacksave, llvm.stackrestore as nounwind. When such calls are inlined into something else that is invoked, they were getting changed to invokes, which is badness.
llvm-svn: 49299
|
#
e9ecc68d |
| 06-Apr-2008 |
Gabor Greif <ggreif@gmail.com> |
API changes for class Use size reduction, wave 1. Specifically, introduction of XXX::Create methods for Users that have a potentially variable number of Uses.
llvm-svn: 49277
|
#
64d0f070 |
| 10-Mar-2008 |
Devang Patel <dpatel@apple.com> |
Restore optimization that merges blocks when inline function has single return value.
llvm-svn: 48162
|
#
72ea2dc9 |
| 10-Mar-2008 |
Devang Patel <dpatel@apple.com> |
Simplify
llvm-svn: 48161
|
#
5ce9b521 |
| 09-Mar-2008 |
Nick Lewycky <nicholas@mxc.ca> |
Update the inliner and simplifycfg to handle unwind_to.
llvm-svn: 48086
|
#
780b3ca6 |
| 07-Mar-2008 |
Devang Patel <dpatel@apple.com> |
Update inliner to handle functions that return multiple values.
llvm-svn: 48020
|
#
4566d885 |
| 04-Mar-2008 |
Devang Patel <dpatel@apple.com> |
Use while loop.
llvm-svn: 47909
|
#
941ab37e |
| 04-Mar-2008 |
Devang Patel <dpatel@apple.com> |
Use cast instead of dyn_cast. Update test to use multiple return value directly, instead of relying on -sretpromotion.
llvm-svn: 47907
|
#
841322b3 |
| 04-Mar-2008 |
Devang Patel <dpatel@apple.com> |
Handle multiple return values.
llvm-svn: 47904
|
Revision tags: llvmorg-2.2.0 |
|
#
053c9871 |
| 27-Jan-2008 |
Duncan Sands <baldrick@free.fr> |
Revert r46393: readonly/readnone functions are no longer allowed to write through byval arguments.
llvm-svn: 46416
|
#
c4dc3dc3 |
| 26-Jan-2008 |
Duncan Sands <baldrick@free.fr> |
Create an explicit copy for byval parameters even when inlining a readonly function.
llvm-svn: 46393
|
#
f52faf9a |
| 25-Jan-2008 |
Duncan Sands <baldrick@free.fr> |
Do this more neatly.
llvm-svn: 46369
|
#
4f6c81ac |
| 12-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
we don't have to make an explicit copy of a byval argument when inlining a function if we know that the function does not write to *any* memory. This implements test/Transforms/Inline/byval2.ll
ll
we don't have to make an explicit copy of a byval argument when inlining a function if we know that the function does not write to *any* memory. This implements test/Transforms/Inline/byval2.ll
llvm-svn: 45912
show more ...
|
#
908117bf |
| 11-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
When inlining a functino with a byval argument, make an explicit copy of it in case the callee modifies the struct.
llvm-svn: 45853
|
#
f3ebc3f3 |
| 29-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Remove attribution from file headers, per discussion on llvmdev.
llvm-svn: 45418
|
#
b969c598 |
| 25-Dec-2007 |
Gordon Henriksen <gordonhenriksen@mac.com> |
GC poses hazards to the inliner. Consider:
define void @f() { ... call i32 @g() ... }
define void @g() { ... }
The hazards are:
-
GC poses hazards to the inliner. Consider:
define void @f() { ... call i32 @g() ... }
define void @g() { ... }
The hazards are:
- @f and @g have GC, but they differ GC. Inlining is invalid. This may never occur. - @f has no GC, but @g does. g's GC must be propagated to @f.
The other scenarios are safe:
- @f and @g have the same GC. - @f and @g have no GC. - @g has no GC.
This patch adds inliner checks for the former two scenarios.
llvm-svn: 45351
show more ...
|
#
aa31b925 |
| 19-Dec-2007 |
Duncan Sands <baldrick@free.fr> |
When inlining through an 'nounwind' call, mark inlined calls 'nounwind'. It is important for correct C++ exception handling that nounwind markings do not get lost, so this transformation is actually
When inlining through an 'nounwind' call, mark inlined calls 'nounwind'. It is important for correct C++ exception handling that nounwind markings do not get lost, so this transformation is actually needed for correctness.
llvm-svn: 45218
show more ...
|
#
3353ed09 |
| 18-Dec-2007 |
Duncan Sands <baldrick@free.fr> |
Rename isNoReturn to doesNotReturn, and isNoUnwind to doesNotThrow.
llvm-svn: 45160
|
#
b5a79d0e |
| 17-Dec-2007 |
Duncan Sands <baldrick@free.fr> |
Make invokes of inline asm legal. Teach codegen how to lower them (with no attempt made to be efficient, since they should only occur for unoptimized code).
llvm-svn: 45108
|
#
edf07887 |
| 17-Dec-2007 |
Christopher Lamb <christopher.lamb@gmail.com> |
Change the PointerType api for creating pointer types. The old functionality of PointerType::get() has become PointerType::getUnqual(), which returns a pointer in the generic address space. The new p
Change the PointerType api for creating pointer types. The old functionality of PointerType::get() has become PointerType::getUnqual(), which returns a pointer in the generic address space. The new prototype of PointerType::get() requires both a type and an address space.
llvm-svn: 45082
show more ...
|