cd81d94322a39503e4a3e87b6ee03d4fcb3465fb |
|
21-Jul-2014 |
Stephen Hines <srhines@google.com> |
Update LLVM for rebase to r212749. Includes a cherry-pick of: r212948 - fixes a small issue with atomic calls Change-Id: Ib97bd980b59f18142a69506400911a6009d9df18
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
dce4a407a24b04eebc6a376f8e62b41aaa7b071f |
|
29-May-2014 |
Stephen Hines <srhines@google.com> |
Update LLVM for 3.5 rebase (r209712). Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
36b56886974eae4f9c5ebc96befd3e7bfe5de338 |
|
24-Apr-2014 |
Stephen Hines <srhines@google.com> |
Update to LLVM 3.5a. Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
16d10987184281aff35c80542a3c02e7dcb7b59b |
|
03-Nov-2013 |
David Majnemer <david.majnemer@gmail.com> |
Revert "Inliner: Handle readonly attribute per argument when adding memcpy" This reverts commit r193356, it caused PR17781. A reduced test case covering this regression has been added to the test suite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193955 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
ef34496b3fc197fe03da6fd86214d5e9b37d4368 |
|
31-Oct-2013 |
Manman Ren <manman.ren@gmail.com> |
Do not convert "call asm" to "invoke asm" in Inliner. Given that backend does not handle "invoke asm" correctly ("invoke asm" will be handled by SelectionDAGBuilder::visitInlineAsm, which does not have the right setup for LPadToCallSiteMap) and we already made the assumption that inline asm does not throw in InstCombiner::visitCallSite, we are going to make the same assumption in Inliner to make sure we don't convert "call asm" to "invoke asm". If it becomes necessary to add support for "invoke asm" later on, we will need to modify the backend as well as remove the assumptions that inline asm does not throw. Fix rdar://15317907 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193808 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
4a6b6eea2d7c1a0fa8e3ee23e1fa73f0307d1115 |
|
24-Oct-2013 |
Tom Stellard <thomas.stellard@amd.com> |
Inliner: Handle readonly attribute per argument when adding memcpy Patch by: Vincent Lejeune git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193356 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
8e229c24ed8b8a9a3866947a709e616b33780f1f |
|
01-May-2013 |
Richard Trieu <rtrieu@google.com> |
Fix a use after free. RI is freed before the call to getDebugLoc(). To prevent this, capture the location before RI is freed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180824 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
8960a5c63db0d4f1e6ad794ea626c68de9313dbf |
|
30-Apr-2013 |
Adrian Prantl <aprantl@apple.com> |
Spelling. Thanks, Eric. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180794 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
8b11e89b93542a465b4b23197283cc7bbceaaa9a |
|
30-Apr-2013 |
Adrian Prantl <aprantl@apple.com> |
Set debug locations for branch instructions created during inlining, even the inlined function has multiple returns. rdar://problem/12415623 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180793 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
f48509787acfcfc3f9eee2fb3084c2e8c7b4a009 |
|
23-Apr-2013 |
Adrian Prantl <aprantl@apple.com> |
Make sure the instruction right after an inlined function has a debug location. This solves a problem where range of an inlined subroutine is emitted wrongly. Patch by Manman Ren. Fixes rdar://problem/12415623 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180140 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
4c6250247053810d44119d2e34eb4f07ba56d035 |
|
22-Mar-2013 |
Bill Wendling <isanbard@gmail.com> |
Add all clauses when merging the landing pads. Duplicates will be handled later on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177757 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
63da4062e4ef85fd64a6f5681e61e4bba4c4a076 |
|
22-Mar-2013 |
Bill Wendling <isanbard@gmail.com> |
Don't use the removed API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177749 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
d9ff8c83d137586d8c06f98bdf8adbf0d1fa79ca |
|
22-Mar-2013 |
Bill Wendling <isanbard@gmail.com> |
Always forward 'resume' instructions to the outter landing pad. How did this ever work? Basically, if you have a function that's inlined into the caller, it may not have any 'call' instructions, but any 'resume' instructions it may have should still be forwarded to the outer (caller's) landing pad. This requires that all of the 'landingpad' instructions in the callee have their clauses merged with the caller's outer 'landingpad' instruction (hence the bit of ugly code in the `forwardResume' method). Testcase in a follow commit to the test-suite repository. <rdar://problem/13360379> & PR15555 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177680 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
0b8c9a80f20772c3793201ab5b251d3520b9cea3 |
|
02-Jan-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Move all of the header files which are involved in modelling the LLVM IR into their new header subdirectory: include/llvm/IR. This matches the directory structure of lib, and begins to correct a long standing point of file layout clutter in LLVM. There are still more header files to move here, but I wanted to handle them in separate commits to make tracking what files make sense at each layer easier. The only really questionable files here are the target intrinsic tablegen files. But that's a battle I'd rather not fight today. I've updated both CMake and Makefile build systems (I think, and my tests think, but I may have missed something). I've also re-sorted the includes throughout the project. I'll be committing updates to Clang, DragonEgg, and Polly momentarily. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
d04a8d4b33ff316ca4cf961e06c9e312eff8e64f |
|
03-Dec-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Use the new script to sort the includes of every file under lib. Sooooo many of these had incorrect or strange main module includes. I have manually inspected all of these, and fixed the main module include to be the nearest plausible thing I could find. If you own or care about any of these source files, I encourage you to take some time and check that these edits were sensible. I can't have broken anything (I strictly added headers, and reordered them, never removed), but they may not be the headers you'd really like to identify as containing the API being implemented. Many forward declarations and missing includes were added to a header files to allow them to parse cleanly when included first. The main module rule does in fact have its merits. =] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
009c4d86c14bb2f46f9473f8f517393dabab7e9e |
|
13-Nov-2012 |
Alexey Samsonov <samsonov@google.com> |
Figure out <size> argument of llvm.lifetime intrinsics at the moment they are created (during function inlining) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167821 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
3574eca1b02600bac4e625297f4ecf745f4c4f32 |
|
08-Oct-2012 |
Micah Villmow <villmow@gmail.com> |
Move TargetData to DataLayout. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165402 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
06cb8ed00696eb14d1b831921452e50ec0568ea2 |
|
29-Jun-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Move llvm/Support/IRBuilder.h -> llvm/IRBuilder.h This was always part of the VMCore library out of necessity -- it deals entirely in the IR. The .cpp file in fact was already part of the VMCore library. This is just a mechanical move. I've tried to go through and re-apply the coding standard's preferred header sort, but at 40-ish files, I may have gotten some wrong. Please let me know if so. I'll be committing the corresponding updates to Clang and Polly, and Duncan has DragonEgg. Thanks to Bill and Eric for giving the green light for this bit of cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159421 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
0bcbd1df7a204e1e512f1a27066d725309de1b13 |
|
28-Jun-2012 |
Bill Wendling <isanbard@gmail.com> |
Move lib/Analysis/DebugInfo.cpp to lib/VMCore/DebugInfo.cpp and include/llvm/Analysis/DebugInfo.h to include/llvm/DebugInfo.h. The reasoning is because the DebugInfo module is simply an interface to the debug info MDNodes and has nothing to do with analysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159312 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
77592fe39c404f3c48b06fae48b965058b3a5ee8 |
|
09-Jun-2012 |
Dmitri Gribenko <gribozavr@gmail.com> |
Convert comments to proper Doxygen comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158248 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
7d8eb711e4608dcca9366141be22941af8d1eff8 |
|
26-Mar-2012 |
Eric Christopher <echristo@apple.com> |
Tidy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153456 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
373c2d37072026e82f9b307eb40cf12baafd5f93 |
|
26-Mar-2012 |
Eric Christopher <echristo@apple.com> |
Tidy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153455 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
fa086f1f00a8b75ab2e2208bd7a028e62f9854db |
|
25-Feb-2012 |
Chad Rosier <mcrosier@apple.com> |
Add support for disabling llvm.lifetime intrinsics in the AlwaysInliner. These are optimization hints, but at -O0 we're not optimizing. This becomes a problem when the alwaysinline attribute is abused. rdar://10921594 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151429 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
8833ef03b9ceaa52063116819fff8b3d16fd8933 |
|
06-Feb-2012 |
Bill Wendling <isanbard@gmail.com> |
[unwind removal] Remove all of the code for the dead 'unwind' instruction. There were no 'unwind' instructions being generated before this, so this is in effect a no-op. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149906 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
13b1c31412372ef3790934ca213546fec595fbbc |
|
31-Jan-2012 |
Bill Wendling <isanbard@gmail.com> |
s/getInnerUnwindDest/getInnerResumeDest/g git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149328 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
08d01462d13fdfac756a8bd0f38bbfbceb247403 |
|
31-Jan-2012 |
Bill Wendling <isanbard@gmail.com> |
Remove ivar which is identical to another ivar. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149323 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
4dbd9b8ebfddb845c5675bbf2567a4d0e04871e7 |
|
31-Jan-2012 |
Bill Wendling <isanbard@gmail.com> |
Remove unused ivars and s/getOuterUnwindDest/getOuterResumeDest/g. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149322 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
6e69442416c23c3c56a335120662557d6bed2fae |
|
31-Jan-2012 |
Bill Wendling <isanbard@gmail.com> |
Remove more dead functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149318 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
fd3adbb31a2745e18d8964d3db02d4d5879202af |
|
31-Jan-2012 |
Bill Wendling <isanbard@gmail.com> |
s/getInnerUnwindDestNewEH/getInnerUnwindDest/g git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149317 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
9e9a34c5688500eee47d6a7800c6e9ef93b90684 |
|
31-Jan-2012 |
Bill Wendling <isanbard@gmail.com> |
Remove some unused, old-EH methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149316 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
675f63886944d72e05e5210c36838c797364a0aa |
|
31-Jan-2012 |
Bill Wendling <isanbard@gmail.com> |
Get rid of references to dead intrinsics. The eh.selector and eh.resume intrinsics aren't used anymore. Get rid of some calls to them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149314 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
06881e8734b1758fb0666f4e47a91bc58c6383be |
|
31-Jan-2012 |
Bill Wendling <isanbard@gmail.com> |
Formatting cleanups. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149312 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
27b5658affba5b12b396048d2cc598c70719bfc5 |
|
31-Jan-2012 |
Bill Wendling <isanbard@gmail.com> |
Remove no-longer-useful dyn_casts and pals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149307 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
30fe1ae20d02ac8e12cec9d767d855946546a030 |
|
02-Dec-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Fix quadratic behavior in InlineFunction by fetching the personality function of the callee once and not for every invoke in the caller. The callee is usually smaller than the caller, too. This reduces the compile time of ARMDisassembler.cpp by 32% (Release build). It still takes ages to compile though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145690 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
173862e5468fbcf4b022b9088d2c81b25c2d60c5 |
|
20-Nov-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Refactor code to use new attribute getters on CallSite for NoCapture and ByVal. Suggested in code review by Eli. That code in InstCombine looks kinda suspicious. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145013 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
fe7a071a19ca6781c774c392c82341bdf14df104 |
|
14-Aug-2011 |
Bill Wendling <isanbard@gmail.com> |
Add inlining for the new EH scheme. This builds off of the current scheme, but instead of llvm.eh.exception and llvm.eh.selector, it uses the landingpad instruction. And instead of llvm.eh.resume, it uses the resume instruction. Because of the invariants in the landing pad instruction, a lot of code that's currently needed to find the appropriate intrinsic calls for an invoke instruction won't be needed once we go to the new EH scheme. The "FIXME"s tell us what to remove after we switch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137576 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
b549bcfe6c19dbb24162c75bbcc06d4a5fa90cb8 |
|
10-Aug-2011 |
Devang Patel <dpatel@apple.com> |
Distinguish between two copies of one inlined variable. Take 2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137253 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
4147f39769d404cab02da4beea852ad2600dadbb |
|
05-Aug-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Temporarily revert r135528 which distinguishes between two copies of one inlined variable, based on the discussion in PR10542. This explodes the runtime of several passes down the pipeline due to a large number of "copies" remaining live across a large function. This only shows up with both debug and opt, but when it does it creates a many-minute compile when self-hosting LLVM+Clang. There are several other cases that show these types of regressions. All of this is tracked in PR10542, and progress is being made on fixing the issue. Once its addressed, the re-instated, but until then this restores the performance for self-hosting and other opt+debug builds. Devang, let me know if this causes any trouble, or impedes fixing it in any way, and thanks for working on this! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136953 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
10c6d12a9fd4dab411091f64db4db69670b88850 |
|
30-Jul-2011 |
Bill Wendling <isanbard@gmail.com> |
Revert r136253, r136263, r136269, r136313, r136325, r136326, r136329, r136338, r136339, r136341, r136369, r136387, r136392, r136396, r136429, r136430, r136444, r136445, r136446, r136253 pending review. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136556 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
9580641d5facf436e549982a5b0a5b3b694f9dc0 |
|
28-Jul-2011 |
Bill Wendling <isanbard@gmail.com> |
Some minor cleanups. No functionalitical change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136341 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
9a2dde3fd12d9200716e02094deba883186e5ba9 |
|
28-Jul-2011 |
Bill Wendling <isanbard@gmail.com> |
Leverage some of the code that John wrote to manage the landing pads. The new EH is more simple in many respects. Mainly, we don't have to worry about the "llvm.eh.exception" and "llvm.eh.selector" calls being in weird places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136339 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
e8ce880f1a66dffcad7955868be5193e782c09ca |
|
28-Jul-2011 |
Bill Wendling <isanbard@gmail.com> |
Automatically merge the landingpad clauses when we come across a callee's landingpad. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136329 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
2bf84c15d24bb373987d9dbc6308092eac1b8324 |
|
28-Jul-2011 |
Bill Wendling <isanbard@gmail.com> |
Initial stab at getting inlining working with the EH rewrite. This takes the new 'resume' instruction and turns it into a direct jump to the caller's landing pad code. The caller's landingpad instruction is merged with the landingpad instructions of the callee. This is a bit rough and makes some assumptions in how the code works. But it passes a simple test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136313 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
91c56a8d8dfb0bebfcd68b5ae3d504a1dc19aa0b |
|
27-Jul-2011 |
Bill Wendling <isanbard@gmail.com> |
Refuse to inline two functions which use different personality functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136269 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
c8fcfc9cd9c0940e8afdaba8b815f8f489b457ba |
|
20-Jul-2011 |
Devang Patel <dpatel@apple.com> |
Distinguish between two copies of one inlined variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135528 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
db125cfaf57cc83e7dd7453de2d509bc8efd0e5e |
|
18-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
land David Blaikie's patch to de-constify Type, with a few tweaks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135375 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
a3efbb15ddd5aa9006564cd79086723640084878 |
|
15-Jul-2011 |
Jay Foad <jay.foad@gmail.com> |
Convert CallInst and InvokeInst APIs to use ArrayRef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135265 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
eb9a85f09e18b3fe88499710404b38d3a9128f62 |
|
14-Jul-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Change Intrinsic::getDeclaration and friends to take an ArrayRef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135154 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
5fdd6c8793462549e3593890ec61573da06e3346 |
|
12-Jul-2011 |
Jay Foad <jay.foad@gmail.com> |
Second attempt at de-constifying LLVM Types in FunctionType::get(), StructType::get() and TargetData::getIntPtrType(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134982 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
2280ebd61416b73d0b6137f275b25af82e268d1f |
|
12-Jul-2011 |
Bill Wendling <isanbard@gmail.com> |
Revert r134893 and r134888 (and related patches in other trees). It was causing an assert on Darwin llvm-gcc builds. Assertion failed: (castIsValid(op, S, Ty) && "Invalid cast!"), function Create, file /Users/buildslave/zorg/buildbot/smooshlab/slave-0.8/build.llvm-gcc-i386-darwin9-RA/llvm.src/lib/VMCore/Instructions.cpp, li\ ne 2067. etc. http://smooshlab.apple.com:8013/builders/llvm-gcc-i386-darwin9-RA/builds/2354 --- Reverse-merging r134893 into '.': U include/llvm/Target/TargetData.h U include/llvm/DerivedTypes.h U tools/bugpoint/ExtractFunction.cpp U unittests/Support/TypeBuilderTest.cpp U lib/Target/ARM/ARMGlobalMerge.cpp U lib/Target/TargetData.cpp U lib/VMCore/Constants.cpp U lib/VMCore/Type.cpp U lib/VMCore/Core.cpp U lib/Transforms/Utils/CodeExtractor.cpp U lib/Transforms/Instrumentation/ProfilingUtils.cpp U lib/Transforms/IPO/DeadArgumentElimination.cpp U lib/CodeGen/SjLjEHPrepare.cpp --- Reverse-merging r134888 into '.': G include/llvm/DerivedTypes.h U include/llvm/Support/TypeBuilder.h U include/llvm/Intrinsics.h U unittests/Analysis/ScalarEvolutionTest.cpp U unittests/ExecutionEngine/JIT/JITTest.cpp U unittests/ExecutionEngine/JIT/JITMemoryManagerTest.cpp U unittests/VMCore/PassManagerTest.cpp G unittests/Support/TypeBuilderTest.cpp U lib/Target/MBlaze/MBlazeIntrinsicInfo.cpp U lib/Target/Blackfin/BlackfinIntrinsicInfo.cpp U lib/VMCore/IRBuilder.cpp G lib/VMCore/Type.cpp U lib/VMCore/Function.cpp G lib/VMCore/Core.cpp U lib/VMCore/Module.cpp U lib/AsmParser/LLParser.cpp U lib/Transforms/Utils/CloneFunction.cpp G lib/Transforms/Utils/CodeExtractor.cpp U lib/Transforms/Utils/InlineFunction.cpp U lib/Transforms/Instrumentation/GCOVProfiling.cpp U lib/Transforms/Scalar/ObjCARC.cpp U lib/Transforms/Scalar/SimplifyLibCalls.cpp U lib/Transforms/Scalar/MemCpyOptimizer.cpp G lib/Transforms/IPO/DeadArgumentElimination.cpp U lib/Transforms/IPO/ArgumentPromotion.cpp U lib/Transforms/InstCombine/InstCombineCompares.cpp U lib/Transforms/InstCombine/InstCombineAndOrXor.cpp U lib/Transforms/InstCombine/InstCombineCalls.cpp U lib/CodeGen/DwarfEHPrepare.cpp U lib/CodeGen/IntrinsicLowering.cpp U lib/Bitcode/Reader/BitcodeReader.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134949 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
f362affa3a695164a94d275fb44d18f44ebb855a |
|
11-Jul-2011 |
Jay Foad <jay.foad@gmail.com> |
De-constify Types in FunctionType::get(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134888 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
2cf158ec4bf78f236976f07e09d7b1fe6be13994 |
|
08-Jul-2011 |
Devang Patel <dpatel@apple.com> |
Refactor. It is inliner's responsibility to update line number information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134708 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
95c3e48f9557adb6064d580684bb14cacec2f826 |
|
23-Jun-2011 |
Jay Foad <jay.foad@gmail.com> |
Reinstate r133513 (reverted in r133700) with an additional fix for a -Wshorten-64-to-32 warning in Instructions.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133708 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
e59fbc04ad343435705c28b3cf7038d65fe4af0a |
|
23-Jun-2011 |
Eric Christopher <echristo@apple.com> |
Revert r133513: "Reinstate r133435 and r133449 (reverted in r133499) now that the clang self-hosted build failure has been fixed (r133512)." Due to some additional warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133700 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
cd35e09a4a3c640b9da0b1dfe3548a605c929ae5 |
|
21-Jun-2011 |
Jay Foad <jay.foad@gmail.com> |
Reinstate r133435 and r133449 (reverted in r133499) now that the clang self-hosted build failure has been fixed (r133512). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133513 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
a88a0ca8082006b37d14d8aee4a644b20bae8bc9 |
|
21-Jun-2011 |
Chad Rosier <mcrosier@apple.com> |
Revert r133435 and r133449 to appease buildbots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133499 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
72f5f313d87558958696ce69593d82efcdfa9128 |
|
20-Jun-2011 |
Jay Foad <jay.foad@gmail.com> |
Change how PHINodes store their operands. Change PHINodes to store simple pointers to their incoming basic blocks, instead of full-blown Uses. Note that this loses an optimization in SplitCriticalEdge(), because we can no longer walk the use list of a BasicBlock to find phi nodes. See the comment I removed starting "However, the foreach loop is slow for blocks with lots of predecessors". Extend replaceAllUsesWith() on a BasicBlock to also update any phi nodes in the block's successors. This mimics what would have happened when PHINodes were proper Users of their incoming blocks. (Note that this only works if OldBB->replaceAllUsesWith(NewBB) is called when OldBB still has a terminator instruction, so it still has some successors.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133435 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
c975a51ac042eb15bcb04a293cb737810ff40a00 |
|
14-Jun-2011 |
John McCall <rjmccall@apple.com> |
Use IRBuilder to make our intrinsic calls in the inliner so that we pick up line info correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132961 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
708c1ac077fbc0cb73d489b4f4df3b2718566b05 |
|
14-Jun-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Use Value::stripPointerCasts instead of reinventing part of the wheel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132954 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
9a488a831784c71acf552d9630a6c25ce8d3c3e9 |
|
13-Jun-2011 |
Nick Lewycky <nicholas@mxc.ca> |
It's possible that an all-zero GEP may be used as the argument to lifetime intrinsics. In fact, we'll optimize a bitcast to that when possible. Detect it when looking for the lifetime intrinsics. No test case, noticed by inspection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132906 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
1dd94bbfa1269b1144a87f5fe9dbc04869f858b4 |
|
09-Jun-2011 |
John McCall <rjmccall@apple.com> |
SplitCriticalEdge can sometimes split the edge from an invoke to a landing pad, separating the exception and selector calls from the new lpad. Teaching it not to do that, or to properly adjust the CFG afterwards, is out of scope because it would require the other edges to the landing pad to be split as well (effectively). Instead, just recover from the most likely cases during inlining. The best long-term solution is to change the exception representation and commit to either requiring or not requiring the more complex edge-splitting logic; this is just a shorter-term hack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132799 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
e669d83a21d7ebf01d3c9e37a20c7348b5a77c11 |
|
09-Jun-2011 |
John McCall <rjmccall@apple.com> |
Teach the CallGraph to ignore calls to intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132797 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
1edbd6f3f07176851cb03f7932ff50b9e9619dfb |
|
01-Jun-2011 |
John McCall <rjmccall@apple.com> |
First, do no harm -- even if we can't find a selector for an enclosing landing pad, forward llvm.eh.resume calls to it instead of turning them invalidly into invokes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132382 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
a6d7345ec91e4b07671f62d231e7c42f054bc70d |
|
29-May-2011 |
John McCall <rjmccall@apple.com> |
Fix this to work correctly with phis; test case to follow if this successfully fixes self-host. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132275 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
d7c10862016939c9850cadfe5e1c35513c0adf28 |
|
28-May-2011 |
John McCall <rjmccall@apple.com> |
Implement and document the llvm.eh.resume intrinsic, which is transformed by the inliner into a branch to the enclosing landing pad (when inlined through an invoke). If not so optimized, it is lowered DWARF EH preparation into a call to _Unwind_Resume (or _Unwind_SjLj_Resume as appropriate). Its chief advantage is that it takes both the exception value and the selector value as arguments, meaning that there is zero effort in recovering these; however, the frontend is required to pass these down, which is not actually particularly difficult. Also document the behavior of landing pads a bit better, and make it clearer that it's okay that personality functions don't always land at landing pads. This is just a fact of life. Don't write optimizations that rely on pushing things over an unwind edge. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132253 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
a3de16bc8f36638d5444e3e7b0112998af54f826 |
|
27-May-2011 |
John McCall <rjmccall@apple.com> |
Fix the inliner to maintain the current de facto invoke semantics: - the selector for the landing pad must provide all available information about the handlers, filters, and cleanups within that landing pad - calls to _Unwind_Resume must be converted to branches to the enclosing lpad so as to avoid re-entering the unwinder when the lpad claimed it was going to handle the exception in some way This is quite specific to libUnwind-based unwinding. In an effort to not interfere too badly with other unwinders, and with existing hacks in frontends, this only triggers on _Unwind_Resume (not _Unwind_Resume_or_Rethrow) and does nothing with selectors if it cannot find a selector call for either lpad. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132200 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
6d55f2269e20298a1d6a683be72d9552482156a9 |
|
22-May-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Teach the inliner to emit llvm.lifetime.start/end, to scope the local variables of the inlinee to the code representing the original function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131838 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
7a2bdde0a0eebcd2125055e0eacaca040f0b766c |
|
15-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
Fix a ton of comment typos found by codespell. Patch by Luis Felipe Strano Moraes! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129558 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
3ecfc861b4365f341c5c969b40e1afccde676e6f |
|
30-Mar-2011 |
Jay Foad <jay.foad@gmail.com> |
Remove PHINode::reserveOperandSpace(). Instead, add a parameter to PHINode::Create() giving the (known or expected) number of operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128537 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
d8b4fb4aab4d6fedb2b14bed1b846451b17bde7c |
|
30-Mar-2011 |
Jay Foad <jay.foad@gmail.com> |
(Almost) always call reserveOperandSpace() on newly created PHINodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128535 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
7569d79de1bd97a6a17b81340ea6ce97d8a3c279 |
|
25-Dec-2010 |
Chris Lattner <sabre@nondot.org> |
switch the inliner alignment enforcement stuff to use the getOrEnforceKnownAlignment function, which simplifies the code and makes it stronger. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122555 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
0b66f63a26387f5c0360a4324fc3c31e0599a6e0 |
|
20-Dec-2010 |
Chris Lattner <sabre@nondot.org> |
when eliding a byval copy due to inlining a readonly function, we have to make sure that the reused alloca has sufficient alignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122236 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
e7ae705c32906979a527926864345016e76867b9 |
|
20-Dec-2010 |
Chris Lattner <sabre@nondot.org> |
pull byval processing out to its own helper function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122235 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
018fb767b91d5ec396d56a3e61bd124918b59fa1 |
|
20-Dec-2010 |
Chris Lattner <sabre@nondot.org> |
fix PR8769, a miscompilation by inliner when inlining a function with a byval argument. The generated alloca has to have at least the alignment of the byval, if not, the client may be making assumptions that the new alloca won't satisfy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122234 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
39add23dc54a1580983b1901384688d6622daa3b |
|
06-Dec-2010 |
Chris Lattner <sabre@nondot.org> |
improve comment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120994 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
f601d6df6f43bb833461cbcee475c36998e6c259 |
|
20-Nov-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Simplify code. No change in functionality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119908 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
6fb881c036c32728c4a128d81b6083457e534e09 |
|
17-Nov-2010 |
Duncan Sands <baldrick@free.fr> |
Have InlineFunction use SimplifyInstruction rather than hasConstantValue. I was leery of using SimplifyInstruction while the IR was still in a half-baked state, which is the reason for delaying the simplification until the IR is fully cooked. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119494 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
1ed219a9d2279ce5a5bbcf16d9b7ccc05cce638c |
|
13-Oct-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Be more consistent in using ValueToValueMapTy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116387 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
6cb8c23db1c3becdce6dfbf1b7f1677faca4251e |
|
26-Aug-2010 |
Dan Gohman <gohman@apple.com> |
Reapply r112091 and r111922, support for metadata linking, with a fix: add a flag to MapValue and friends which indicates whether any module-level mappings are being made. In the common case of inlining, no module-level mappings are needed, so MapValue doesn't need to examine non-function-local metadata, which can be very expensive in the case of a large module with really deep metadata (e.g. a large C++ program compiled with -g). This flag is a little awkward; perhaps eventually it can be moved into the ClonedCodeInfo class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112190 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
86099345db95fdce6960ab62fbd9cb0cf96875f7 |
|
27-Jul-2010 |
Gabor Greif <ggreif@gmail.com> |
simplify: CallSite::get --> CallSite constructor git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109506 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
aeff385e3e21a3cde564ef49da1bdd7b745aa44c |
|
24-Jun-2010 |
Gabor Greif <ggreif@gmail.com> |
use callsite to obtain all arguments git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106728 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
e9916a302f1bacad234d7dafc1df3dc968a6ba0f |
|
24-Jun-2010 |
Devang Patel <dpatel@apple.com> |
Use ValueMap instead of DenseMap. The ValueMapper used by various cloning utility maps MDNodes also. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106706 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
29d3dd8a64791031eea00ffbae51843dc9982df9 |
|
24-Jun-2010 |
Devang Patel <dpatel@apple.com> |
Cosmetic change. Do not use "ValueMap" as a name for a local variable or an argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106698 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
2914ba6ec793e2bb0e9ca5891af1d29ee2fee28e |
|
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105255 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
0ca2f28458ae9122f413a4092ddcee33a9dd21c6 |
|
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102824 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
6da12e6767100d3f874c2e05aae74e4fe24357b1 |
|
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 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102823 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
076863225ce070345ff7048f48b3550e00598a10 |
|
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) call. The improved inliner behavior is still disabled for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102196 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
fe9af3b1f7e5d68ecc330bdf4f047d76838f8cc3 |
|
23-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 being indirect to being direct as a result of inlining. This allows it to completely "devirtualize" the testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102146 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
60915146f4d35e12f10dcdaa155596fac79184da |
|
23-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 the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102137 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
b957a5e41ed6288f4d033167f6413621a09655ee |
|
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 (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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
f8b99cb03bd2278328e995c4b8400a09f77ef19b |
|
22-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate dead #include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102119 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
551754c4958086cc6910da7c950f2875e212f5cf |
|
17-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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101579 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
4ec2258ffb495d7ce00177e447740ef1123a27db |
|
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 efficient access to operands and callee, faster callgraph-construction, smaller compiler binary git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101465 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
607a7ab3da72a2eb53553a520507cbb8068dd1d8 |
|
16-Apr-2010 |
Gabor Greif <ggreif@gmail.com> |
back out r101423 and r101397, they break llvm-gcc self-host on darwin10 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101434 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
2ff961f66816daab8bbc58a19025161d969821c2 |
|
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 llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101397 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
9ee17208115482441953127615231c59a2f4d052 |
|
15-Apr-2010 |
Gabor Greif <ggreif@gmail.com> |
back out r101364, as it trips the linux nightlybot on some clang C++ tests git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101368 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
165dac08d1bb8428b32a5f39cdd3dbee2888987f |
|
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, faster callgraph-construction, smaller compiler binary git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101364 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
20adc9dc4650313f017b27d9818eb2176238113d |
|
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*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100304 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
e754d3fb852abdeaf910c7331eed60f6303597c1 |
|
02-Apr-2010 |
Mon P Wang <wangmp@apple.com> |
Revert r100191 since it breaks objc in clang git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100199 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
e33c848fa481b038d5ad0c7c898c33b2b27ec71e |
|
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*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100191 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
100f090adde26005b9f1eca96871dff52825b27b |
|
31-Mar-2010 |
Bob Wilson <bob.wilson@apple.com> |
Revert Mon Ping's change 99928, since it broke all the llvm-gcc buildbots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99948 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
808bab0169ab7d2e8dfdc72dd2c991cd8ff2396d |
|
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 of langref will occur in a subsequent checkin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99928 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
0623e90398153be61226ad19f1b40d3817874526 |
|
25-Mar-2010 |
Eric Christopher <echristo@apple.com> |
Temporarily revert this, it's causing an issue with an internal project. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99451 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
a54934ae9d278448fb557366eb4a79a8cb3fc606 |
|
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't. This fixes PR6682. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99341 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
44a29e066a24e88bdf127e88be4380a5f259c4b4 |
|
05-Jan-2010 |
Devang Patel <dpatel@apple.com> |
Remove dead debug info intrinsics. Intrinsic::dbg_stoppoint Intrinsic::dbg_region_start Intrinsic::dbg_region_end Intrinsic::dbg_func_start AutoUpgrade simply ignores these intrinsics now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92557 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
53bb5c95afe4ff2627cac513221af2e4e7c5d2e3 |
|
11-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Implement support to debug inlined functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86748 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
c581acbbba3cb1af6a08e17314b26344333f9267 |
|
27-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
Fix a pretty serious misfeature of the inliner: if it inlines a function with multiple return values it inserts a PHI to merge them all together. However, if the return values are all the same, it ends up with a pointless PHI and this pointless PHI happens to really block SRoA from happening in at least a silly C++ example written by Doug, but probably others. This fixes rdar://7339069. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85206 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
6128df525501c333a650d097703c18d7e878f5e8 |
|
17-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
Simplify some code (first hunk) and fix PR5208 (second hunk) by updating the callgraph when introducing a call. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84310 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
ac53a0b272452013124bfc70480aea5e41b60f40 |
|
06-Oct-2009 |
Duncan Sands <baldrick@free.fr> |
Introduce and use convenience methods for getting pointer types where the element is of a basic builtin type. For example, to get an i8* use getInt8PtrTy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83379 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
6776064d190701c5bae4d5403939eed2e480d1cd |
|
27-Sep-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Instruction::clone does not need to take an LLVMContext&. Remove that and update all the callers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82889 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
f61f89ae14cf332a014a598153137113af34002f |
|
07-Sep-2009 |
Eric Christopher <echristo@apple.com> |
Fix comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81138 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
81dfb3885252fbf621b080827a080099864415f8 |
|
01-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
remove a bunch of explicit code previously needed to update the callgraph. This is now dead because RAUW does the job. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80703 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
a541b0fde2ab6b8b037edf113d42da41a2c5aae9 |
|
01-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
Change CallGraphNode to maintain it's Function as an AssertingVH for sanity. This didn't turn up any bugs. Change CallGraphNode to maintain its "callsite" information in the call edges list as a WeakVH instead of as an instruction*. This fixes a broad class of dangling pointer bugs, and makes CallGraph have a number of useful invariants again. This fixes the class of problem indicated by PR4029 and PR3601. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80663 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
e4b275610a7a05b7ee4c0378a906a6330e4c4ab0 |
|
29-Aug-2009 |
Devang Patel <dpatel@apple.com> |
Reapply 79977. Use MDNodes to encode debug info in llvm IR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80406 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
8f2718fbef6177966ff807af0732eb2431bd9a5f |
|
27-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
enhance InlineFunction to be able to optionally return a the list of static allocas that it inlined. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80203 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
ec1bea0d94372985a0a5eb283e644c6d0dd345dc |
|
27-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
smallvectorize the list of returns built by CloneAndPruneFunctionInto. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80202 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
135755dae4c3fa8003b76150689d5064aa4612ee |
|
27-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
reduce inlining factor some stuff out to a static helper function, and other code cleanups. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80199 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
824598883513789516a919651f4b35e7a638ec5c |
|
26-Aug-2009 |
Devang Patel <dpatel@apple.com> |
Revert 79977. It causes llvm-gcc bootstrap failures on some platforms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80073 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
2a610c7387664bc557a35ce3bb4c0d4df56e4755 |
|
25-Aug-2009 |
Devang Patel <dpatel@apple.com> |
Update DebugInfo interface to use metadata, instead of special named llvm.dbg.... global variables, to encode debugging information in llvm IR. This is mostly a mechanical change that tests metadata support very well. This change speeds up llvm-gcc by more then 6% at "-O0 -g" (measured by compiling InstructionCombining.cpp!) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79977 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
1d0be15f89cb5056e20e2d24faa8d6afb1573bca |
|
13-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Push LLVMContexts through the IntegerType APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78948 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
9e9a0d5fc26878e51a58a8b57900fcbf952c2691 |
|
31-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Move more code back to 2.5 APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77635 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
debcb01b0f0a15f568ca69e8f288fade4bfc7297 |
|
30-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Move types back to the 2.5 API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77516 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
baf3c404409d5e47b13984a7f95bfbd6d1f2e79e |
|
29-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Move ConstantExpr to 2.5 API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77494 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
eed707b1e6097aac2bb6b3d47271f6300ace7f2e |
|
25-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Revert the ConstantInt constructors back to their 2.5 forms where possible, thanks to contexts-on-types. More to come. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77011 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
e922c0201916e0b980ab3cfe91e1413e68d55647 |
|
22-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Get rid of the Pass+Context magic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76702 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
50dead06ffc107edb7e84857baaeeb09039c631c |
|
16-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Revert yesterday's change by removing the LLVMContext parameter to AllocaInst and MallocInst. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75863 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
9adc0abad3c3ed40a268ccbcee0c74cb9e1359fe |
|
15-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Move EVER MORE stuff over to LLVMContext. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75703 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
333c40096561218bc3597cf153c0a3895274414c |
|
10-Jul-2009 |
Owen Anderson <resistor@mac.com> |
This started as a small change, I swear. Unfortunately, lots of things call the [I|F]CmpInst constructors. Who knew!? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75200 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
0a205a459884ec745df1c529396dd921f029dafd |
|
06-Jul-2009 |
Owen Anderson <resistor@mac.com> |
More LLVMContext-ification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74807 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
5877ad7e90de2179c15914ff9e8f1c72152cac30 |
|
08-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
PR4123: don't crash when inlining a call which uses its own result. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71199 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
517576d6f96a0acde9bab79553d89f4ceba20cf6 |
|
15-Apr-2009 |
Devang Patel <dpatel@apple.com> |
While inlining, clone llvm.dbg.func.start intrinsic and adjust llvm.dbg.region.end instrinsic. This nested llvm.dbg.func.start/llvm.dbg.region.end pair now enables DW_TAG_inlined_subroutine support in code generator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69118 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
28c531cdbb403c59f492d3361ec9e8581f2a7ab2 |
|
31-Mar-2009 |
Devang Patel <dpatel@apple.com> |
Update call graph after inlining invoke. Patch by Jay Foad. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68120 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
0744f09efc53d3352ac1caffc61f6e8239201c3b |
|
04-Mar-2009 |
Dale Johannesen <dalej@apple.com> |
Revert unintended commmit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66001 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
cdb16aa5ab6013268d0ee0a8c8c29a8ebafb799b |
|
04-Mar-2009 |
Dale Johannesen <dalej@apple.com> |
Always skip ptr-to-ptr bitcasts when counting, per Chris' suggestion. Slightly faster. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65999 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
af9985c6b9d066cb70a0363fed699022d0ec196c |
|
12-Feb-2009 |
Chris Lattner <sabre@nondot.org> |
Fix a nasty bug (PR3550) where the inline pass could incorrectly mark calls with the tail marker when inlining them through an invoke. Patch, testcase, and perfect analysis by Jay Foad! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64364 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
2eafb8b404311ffce66ab170baef0385e79cc2b6 |
|
03-Feb-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Revert r63600. It didn't fix the bug, it just moved it a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63618 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
dac5c4b10b387b55c2394cd98a64f3f1394df2e8 |
|
03-Feb-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Update the callgraph when replacing InvokeInst with CallInst when inlining. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63600 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
125329891f97baedef21e4b464ba70182c3fb45e |
|
17-Jan-2009 |
Gabor Greif <ggreif@gmail.com> |
introduce typedef for complicated vector, and use it too git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62384 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
de62aeaec49ddcf4a4c61fbbb3a22d3a4dd448f0 |
|
17-Jan-2009 |
Gabor Greif <ggreif@gmail.com> |
typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62377 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
c478e52bf4c12691037856ee103c66946afeab6c |
|
15-Jan-2009 |
Gabor Greif <ggreif@gmail.com> |
avoid using iterators when they get invalidated potentially this fixes PR3332 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62271 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
39fa32403e0b5e163f4f05566d6cde65e6c11095 |
|
13-Jan-2009 |
Dale Johannesen <dalej@apple.com> |
Fix testsuite regressions from recursive inlining. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62189 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
824b958e6fb1236e92e4d07f3acf18fca107cdc0 |
|
21-Nov-2008 |
Chris Lattner <sabre@nondot.org> |
reapply Sanjiv's patch to genericize memcpy/memset/memmove to take an arbitrary integer width for the count. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59823 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
dc770929cb2f97397970e2942b746839fc387992 |
|
21-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Revert r59802. It was breaking the build of llvm-gcc: g++ -m32 -c -g -DIN_GCC -W -Wall -Wwrite-strings -Wmissing-format-attribute -fno-common -mdynamic-no-pic -DHAVE_CONFIG_H -Wno-unused -DTARGET_NAME=\"i386-apple-darwin9.5.0\" -I. -I. -I../../llvm-gcc.src/gcc -I../../llvm-gcc.src/gcc/. -I../../llvm-gcc.src/gcc/../include -I./../intl -I../../llvm-gcc.src/gcc/../libcpp/include -I../../llvm-gcc.src/gcc/../libdecnumber -I../libdecnumber -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/include -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/include -DENABLE_LLVM -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/../llvm.src/include -D_DEBUG -D_GNU_SOURCE -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -I. -I. -I../../llvm-gcc.src/gcc -I../../llvm-gcc.src/gcc/. -I../../llvm-gcc.src/gcc/../include -I./../intl -I../../llvm-gcc.src/gcc/../libcpp/include -I../../llvm-gcc.src/gcc/../libdecnumber -I../libdecnumber -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/include -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/include ../../llvm-gcc.src/gcc/llvm-types.cpp -o llvm-types.o ../../llvm-gcc.src/gcc/llvm-convert.cpp: In member function 'void TreeToLLVM::EmitMemCpy(llvm::Value*, llvm::Value*, llvm::Value*, unsigned int)': ../../llvm-gcc.src/gcc/llvm-convert.cpp:1496: error: 'memcpy_i32' is not a member of 'llvm::Intrinsic' ../../llvm-gcc.src/gcc/llvm-convert.cpp:1496: error: 'memcpy_i64' is not a member of 'llvm::Intrinsic' ../../llvm-gcc.src/gcc/llvm-convert.cpp: In member function 'void TreeToLLVM::EmitMemMove(llvm::Value*, llvm::Value*, llvm::Value*, unsigned int)': ../../llvm-gcc.src/gcc/llvm-convert.cpp:1512: error: 'memmove_i32' is not a member of 'llvm::Intrinsic' ../../llvm-gcc.src/gcc/llvm-convert.cpp:1512: error: 'memmove_i64' is not a member of 'llvm::Intrinsic' ../../llvm-gcc.src/gcc/llvm-convert.cpp: In member function 'void TreeToLLVM::EmitMemSet(llvm::Value*, llvm::Value*, llvm::Value*, unsigned int)': ../../llvm-gcc.src/gcc/llvm-convert.cpp:1528: error: 'memset_i32' is not a member of 'llvm::Intrinsic' ../../llvm-gcc.src/gcc/llvm-convert.cpp:1528: error: 'memset_i64' is not a member of 'llvm::Intrinsic' make[3]: *** [llvm-convert.o] Error 1 make[3]: *** Waiting for unfinished jobs.... rm fsf-funding.pod gcov.pod gfdl.pod cpp.pod gpl.pod gcc.pod make[2]: *** [all-stage1-gcc] Error 2 make[1]: *** [stage1-bubble] Error 2 make: *** [all] Error 2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59809 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
219ab405e6bea993da14cf3ce7b50983c3bb7a6f |
|
21-Nov-2008 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Make mem[cpy,move,set] intrinsics overloaded. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59802 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
0598866c052147c31b808391f58434ce3dbfb838 |
|
25-Sep-2008 |
Devang Patel <dpatel@apple.com> |
Large mechanical patch. s/ParamAttr/Attribute/g s/PAList/AttrList/g s/FnAttributeWithIndex/AttributeWithIndex/g s/FnAttr/Attribute/g This sets the stage - to implement function notes as function attributes and - to distinguish between function attributes and return value attributes. This requires corresponding changes in llvm-gcc and clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56622 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
eaf42abab6d465c38891345d999255871cf03943 |
|
24-Sep-2008 |
Devang Patel <dpatel@apple.com> |
s/ParameterAttributes/Attributes/g git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56513 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
d7b9851c4e634ed3599b1a4c70b1c76c90a11686 |
|
08-Sep-2008 |
Duncan Sands <baldrick@free.fr> |
Reapply 55859. This doesn't change anything as long as the callgraph is correct. It checks for wrong callgraphs more strictly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55894 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
6e6074508c2f781c3e52dfe0e301cb1c7f395a91 |
|
06-Sep-2008 |
Owen Anderson <resistor@mac.com> |
Revert r55859. This is breaking the build in the abscence of its companion commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55865 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
c94fe21a56f9e4e5ebbe99252a25636c36392509 |
|
05-Sep-2008 |
Duncan Sands <baldrick@free.fr> |
Delete the removeCallEdgeTo callgraph method, because it does not maintain a correct list of callsites. I discovered (see following commit) that the inliner will create a wrong callgraph if it is fed a callgraph with correct edges but incorrect callsites. These were created by Prune-EH, and while it wasn't done via removeCallEdgeTo, it could have been done via removeCallEdgeTo, which is an accident waiting to happen. Use removeCallEdgeFor instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55859 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
a7212e58260f6d1ead0c4eec7af400cf6c0d289e |
|
05-Sep-2008 |
Duncan Sands <baldrick@free.fr> |
Remove trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55835 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
5eca075b74d62c621b160aa216b4cd50829a2cc7 |
|
17-Aug-2008 |
Gordon Henriksen <gordonhenriksen@mac.com> |
Rename some GC classes so that their roll will hopefully be clearer. In particular, Collector was confusing to implementors. Several thought that this compile-time class was the place to implement their runtime GC heap. Of course, it doesn't even exist at runtime. Specifically, the renames are: Collector -> GCStrategy CollectorMetadata -> GCFunctionInfo CollectorModuleMetadata -> GCModuleInfo CollectorRegistry -> GCRegistry Function::getCollector -> getGC (setGC, hasGC, clearGC) Several accessors and nested types have also been renamed to be consistent. These changes should be obvious. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54899 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
fc74abfba5128544a750fce22fdf13eb0403e3ce |
|
23-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Enable first-class aggregates support. Remove the GetResultInst instruction. It is still accepted in LLVM assembly and bitcode, where it is now auto-upgraded to ExtractValueInst. Also, remove support for return instructions with multiple values. These are auto-upgraded to use InsertValueInst instructions. The IRBuilder still accepts multiple-value returns, and auto-upgrades them to InsertValueInst instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53941 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
1adec83ae84031bfa9f0bf209c5ee6c64906a1ff |
|
22-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Use Instruction::eraseFromParent(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52606 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
9614fcc640eb628cc5dfddb277ebae9f6cb61014 |
|
20-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Clean up a use of std::distance. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52544 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
2c31750cd0ebdc83a890ace97dbb6249b3abe44e |
|
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52519 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
b1dbcd886a4b5597a839f299054b78b33fb2d6df |
|
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51143 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
280a6e607d8eb7401749a92db624a82de47da777 |
|
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50265 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
6829157f49641c19bc77e7ca5ffc16f2d91c74f2 |
|
23-Apr-2008 |
Devang Patel <dpatel@apple.com> |
Check type instead of no. of operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50179 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
3d292aca0306fbb65da4622c80df01432ab6559b |
|
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 there use Intrinsic::getDeclaration rather than getOrInsertFunction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49337 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
11b80a8e1c76c1ce25f471db900df626086fb39a |
|
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49299 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
051a950000e21935165db56695e35bade668193b |
|
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49277 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
b8f198af1b62f2ed48dcb914973a9d211dcba38b |
|
10-Mar-2008 |
Devang Patel <dpatel@apple.com> |
Restore optimization that merges blocks when inline function has single return value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48162 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
641ca93cff0f957fc5fb9dfb05d2a4a340aa8af7 |
|
10-Mar-2008 |
Devang Patel <dpatel@apple.com> |
Simplify git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48161 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
6af31aab63583e61b7c7b51bc285541750bd834f |
|
09-Mar-2008 |
Nick Lewycky <nicholas@mxc.ca> |
Update the inliner and simplifycfg to handle unwind_to. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48086 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
12a466b9d0e27be453cfa05cff18acc9d7c1cfba |
|
07-Mar-2008 |
Devang Patel <dpatel@apple.com> |
Update inliner to handle functions that return multiple values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48020 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
ac3746f20c3048eb3c302fec9ae86d7c1ee61c72 |
|
04-Mar-2008 |
Devang Patel <dpatel@apple.com> |
Use while loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47909 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
37963556e331914fea9c5afb00de0e2a335fec6d |
|
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47907 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
dc00d42bb18a6748f43c365d9bd30c1ed0e800ac |
|
04-Mar-2008 |
Devang Patel <dpatel@apple.com> |
Handle multiple return values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47904 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
d82375c1c43db7f823dd4660d3495e76566699e3 |
|
27-Jan-2008 |
Duncan Sands <baldrick@free.fr> |
Revert r46393: readonly/readnone functions are no longer allowed to write through byval arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46416 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
418ab3729cbf094011eeaeb92306c410ae0f8944 |
|
26-Jan-2008 |
Duncan Sands <baldrick@free.fr> |
Create an explicit copy for byval parameters even when inlining a readonly function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46393 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
255bd2852b7e23591fc66434a4a10ecf5bf4a615 |
|
25-Jan-2008 |
Duncan Sands <baldrick@free.fr> |
Do this more neatly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46369 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
92938b714565db1aea797d7c7a04987cfc6384c2 |
|
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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45912 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
c93adca35856d0eaae088e52ba30cfefbd7ad910 |
|
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45853 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
4ee451de366474b9c228b4e5fa573795a715216d |
|
29-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Remove attribution from file headers, per discussion on llvmdev. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45418 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
0e13821c96937830ec817f08095c3cef1fdcac8d |
|
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: - @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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45351 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
f0c3354d998507515ab39e26b5292ea0ceb06aef |
|
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 needed for correctness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45218 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
2b0e8990ab33ec2dad21286d3ce01dbb4bbe63c1 |
|
18-Dec-2007 |
Duncan Sands <baldrick@free.fr> |
Rename isNoReturn to doesNotReturn, and isNoUnwind to doesNotThrow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45160 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
fd7b326bea39c077eea8d378156bcf09051cc4ec |
|
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). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45108 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
43ad6b3e0d6ada51e9b23aab3e061187f1f5710c |
|
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 prototype of PointerType::get() requires both a type and an address space. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45082 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
17af3577791f44429bc43c20cd787b960ec5d3b4 |
|
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45077 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
ece2c04d532d46405c085769d03173b392813eb3 |
|
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 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... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45073 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
a3355ffb3d30d19d226bbb75707991c60f236e37 |
|
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 aliasing logic (which didn't use anything more than this anyway). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44544 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
dc024674ff96820d6020757b48d47f46d4c07db2 |
|
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 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44359 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
f1355a55f8d815f5385e9a4432195f03b65f3a42 |
|
27-Aug-2007 |
David Greene <greened@obbligato.org> |
Update InvokeInst to work like CallInst git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41506 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
a6a996d3190be77bdca3bac85e6924bb86d67484 |
|
15-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
Fix PR1335 and Transforms/Inline/2007-04-15-InlineEH.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36090 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
ecb7a77885b174cf4d001a9b48533b3979e7810d |
|
22-Mar-2007 |
Dan Gohman <gohman@apple.com> |
Change uses of Function::front to Function::getEntryBlock for readability. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35265 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
e26bff22dbcfec2074a7502dd56683fc7f55912a |
|
20-Feb-2007 |
Dan Gohman <gohman@apple.com> |
Fix typos in comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34456 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
93e985f1b17aef62d58e3198a4604f9f6cfe8d19 |
|
13-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
Eliminate use of ctors that take vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34219 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
5e665f559419c7f58a4fd9360cd488f065505c44 |
|
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%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33801 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
1dfdf8255e803d6376f5fe94a113f892e796ae6c |
|
31-Jan-2007 |
Chris Lattner <sabre@nondot.org> |
The inliner/cloner can now optionally take TargetData info, which can be used by constant folding. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33676 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
5cbf985dcbc89fba3208e7baf8b6f488b06d3ec9 |
|
30-Jan-2007 |
Reid Spencer <rspencer@reidspencer.com> |
For PR1136: Rename GlobalVariable::isExternal as isDeclaration to avoid confusion with external linkage types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33663 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
a121fddf3c34938d866ac4bb67247a479dedcd1b |
|
07-Jan-2007 |
Chris Lattner <sabre@nondot.org> |
prepare for adjustment to getOrInsertFunction method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32985 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
c5b206b6be61d0d933b98b6af5e22f42edd48ad1 |
|
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, getSignedVersion, getUnsignedVersion and other methods related to signedness. In a few places this warranted identifying the signedness information from other sources. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32785 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
33bb3c8be355d179ece8e751f6e0f0978d0dd038 |
|
13-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Implement the first half of Transforms/Inline/inline_cleanup.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30303 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
21ba23d0d88cff57dcdf104cd6914dabcbc68131 |
|
18-Jul-2006 |
Chris Lattner <sabre@nondot.org> |
silence warnings in a release build git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29189 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
981418bf1562d0b5b470ddc7d0034c9f3297b893 |
|
12-Jul-2006 |
Chris Lattner <sabre@nondot.org> |
Handle instructions in the map, but that map to a null pointer. This unbreaks smg2000. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29127 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
1bb3a402574557cb228f8a96030776c229e282e5 |
|
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29121 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
d85340f4ec587e22b0239617f3b747a6df113894 |
|
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 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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29120 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
5b5bc3032f97cfa7bfa3e22282d3a9c1ed05eec6 |
|
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 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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28521 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
468fb1df7db466e5682ee44341c3990b599e8d6a |
|
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25320 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
bf229f488a7541abd979cc3fbe9c3ce1c100e5c0 |
|
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25286 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
1fdf4a859f03ce5aa4ce9acba29ce321c847388e |
|
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25285 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
727d1dd58793447e83ade712f0e58172f156edcf |
|
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 these cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25284 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
cd4d339ec187182c9abc22b80560349f8ba5010f |
|
13-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Refactor a bunch of invoke handling stuff out into a new function "HandleInlinedInvoke". No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25283 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
21f20558d629f7ff8f64c20746d890d29328a544 |
|
13-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a bug I noticed by inspection: if the first instruction in the inlined function was not an alloca, we wouldn't check the entry block for any allocas, leading to increased stack space in some cases. In practice, allocas are almost always at the top of the block, so this was never noticed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25280 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
00b16889ab461b7ecef1c91ade101186b7f1fce2 |
|
27-Jul-2005 |
Jeff Cohen <jeffc@jolt-lang.org> |
Eliminate all remaining tabs and trailing spaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22523 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
c154cef9a1e7db1afd42e4b227571debe7a986f5 |
|
09-May-2005 |
Chris Lattner <sabre@nondot.org> |
wrap long lines, preserve calling conventions when cloning functions and turning calls into invokes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21797 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
3799ed83b4cb80695a81294da6a7d18cf0884f5e |
|
06-May-2005 |
Chris Lattner <sabre@nondot.org> |
BAD typeo which caused many testsuite failures last night. Note to self, do not change code after testing it without retesting! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21741 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
1b49141821e98e4321bfe6234c7001c836b2a289 |
|
06-May-2005 |
Chris Lattner <sabre@nondot.org> |
Implement Transforms/Inline/inline-tail.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21736 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
fd93908ae8b9684fe71c239e3c6cfe13ff6a2663 |
|
22-Apr-2005 |
Misha Brukman <brukman+llvm@gmail.com> |
Remove trailing whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21427 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
e4d5c441e04bdc00ccf1804744af670655123b07 |
|
15-Mar-2005 |
Chris Lattner <sabre@nondot.org> |
This mega patch converts us from using Function::a{iterator|begin|end} to using Function::arg_{iterator|begin|end}. Likewise Module::g* -> Module::global_*. This patch is contributed by Gabor Greif, thanks! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20597 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
284d1b88273eb1967c8faef407f1167791c760e0 |
|
11-Dec-2004 |
Chris Lattner <sabre@nondot.org> |
The split bb is really the exit of the old function git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18799 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
3787e765facfad5ea62753922d940bcdd52afd57 |
|
18-Oct-2004 |
Chris Lattner <sabre@nondot.org> |
Fix Regression/Transforms/Inline/2004-10-17-InlineFunctionWithoutReturn.ll If a function had no return instruction in it, and the result of the inlined call instruction was used, we would crash. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17104 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
2da5c3dda6f5b9c4ec6d55008d33327764364bd4 |
|
15-Sep-2004 |
Reid Spencer <rspencer@reidspencer.com> |
Convert code to compile with vc7.1. Patch contributed by Paolo Invernizzi. Thanks Paolo! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16368 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
adfd32f8eefc804dce24d14450c10f592e643e2d |
|
20-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Fix a serious code pessimization problem. If an inlined function has a single return, clone the 'ret' BB code into the block AFTER the inlined call, not the other way around. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15030 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
cd01ae5c7071fb99a665b2bbea7428d769792ab8 |
|
16-Apr-2004 |
Chris Lattner <sabre@nondot.org> |
Fix Inline/2004-04-15-InlineDeletesCall.ll Basically we were using SimplifyCFG as a huge sledgehammer for a simple optimization. Because simplifycfg does so many things, we can't use it for this purpose. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12977 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
494b6920b067ec663b28c644f151fe61ef8b4e71 |
|
13-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Fix compilation of 126.gcc: intrinsic functions cannot throw, so they are not allowed in invoke instructions. Thus, if we are inlining a call to an intrinsic function into an invoke site, we don't need to turn the call into an invoke! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11384 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
aeb2a1d70807aa626f335fb23d47bc604ffeaa15 |
|
08-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
rename the "exceptional" destination of an invoke instruction to the 'unwind' dest git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11202 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
c1df7e1799a7a97602bdedec818f7ab1dc514b4e |
|
04-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Two changes: 1. Don't scan to the end of alloca instructions in the caller function to insert inlined allocas, just insert at the top. This saves a lot of time inlining into functions with a lot of allocas. 2. Use splice to move the alloca instructions over, instead of remove/insert. This allows us to transfer a block at a time, and eliminates a bunch of silly symbol table manipulations. This speeds up the inliner on the testcase in PR209 from 1.73s -> 1.04s (67%) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11118 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
44a6807f4f785ecdd96b3aa67dad056677131b98 |
|
04-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Optimize the case where we are inlining a function that contains only one basic block, and that basic block ends with a return instruction. In this case, we can just splice the cloned "body" of the function directly into the source basic block, avoiding a lot of rearrangement and splitBasicBlock's linear scan over the split block. This speeds up the inliner on the testcase in PR209 from 2.3s to 1.7s, a 35% reduction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11116 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
5e923dee6024248f58fa83a7c7299437f44f0d1a |
|
04-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
More refactoring. Move alloca instructions and handle invoke instructions before we delete the original call site, allowing slight simplifications of code, but nothing exciting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11109 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
5052c911ec1be51ecb36e7f025c26412e9f1bfac |
|
04-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Move the cloning of the function body much earlier in the inlinefunction process. The only optimization we did so far is to avoid creating a PHI node, then immediately destroying it in the common case where the callee has one return statement. Instead, we just don't create the return value. This has no noticable performance impact, but paves the way for future improvements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11108 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
f7703df4968084c18c248c1feea9961c19a32e6a |
|
09-Jan-2004 |
Chris Lattner <sabre@nondot.org> |
Finegrainify namespacification git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10727 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
f8485c643412dbff46fe87ea2867445169a5c28e |
|
20-Nov-2003 |
Chris Lattner <sabre@nondot.org> |
Start using the nicer terminator auto-insertion API git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10111 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
d0fde30ce850b78371fd1386338350591f9ff494 |
|
11-Nov-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Put all LLVM code into the llvm namespace, as per bug 109. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9903 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
198f4507e2ff934a8ac3aa0a82526fa6a153b70b |
|
27-Oct-2003 |
Chris Lattner <sabre@nondot.org> |
Get the list of PHI node values before the basic block is split. Also, add PHI node entries for unwind instructions just like for call instructions which became invokes! This fixes PR57, tested by Inline/2003-10-26-InlineInvokeExceptionDestPhi.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9526 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
b576c94c15af9a440f69d9d03c2afead7971118c |
|
20-Oct-2003 |
John Criswell <criswell@uiuc.edu> |
Added LLVM project notice to the top of every C++ source file. Header files will be on the way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9298 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
f775f95369ba7d88a5cb8b6f1900241699d79351 |
|
14-Oct-2003 |
Chris Lattner <sabre@nondot.org> |
Do not move variable sized allocations to the top of the caller, which might break dominance relationships, and is otherwise bad. This fixes bug: Inline/2003-10-13-AllocaDominanceProblem.ll. This also fixes miscompilation of 3 176.gcc source files (reload1.c, global.c, flow.c) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9109 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
5f92e2b11f68624f9003e710f44e3bc324cbf89a |
|
06-Oct-2003 |
Chris Lattner <sabre@nondot.org> |
Avoid doing pointless work. Amazingly, this makes us go faster. Running the inliner on 252.eon used to take 48.4763s, now it takes 14.4148s. In release mode, it went from taking 25.8741s to taking 11.5712s. This also fixes a FIXME. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8890 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
dd7036d19a3bfd3dff2531c7fdcd7901b2442de9 |
|
23-Sep-2003 |
Chris Lattner <sabre@nondot.org> |
Fix bugs in the last change git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8667 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
f98a08490801b8bc6e2006627d34095f5b8567c8 |
|
23-Sep-2003 |
Chris Lattner <sabre@nondot.org> |
Fix bug: Inline/2003-09-22-PHINodesInNormalInvokeDest.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8666 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
51d6816089a66c171dc23b50d62989ac6bb5c491 |
|
22-Sep-2003 |
Chris Lattner <sabre@nondot.org> |
Fix bug: Inline/2003-09-22-PHINodesInExceptionDest.ll ... by making sure to update PHI nodes to take into consideration the extra edges we get if we inline a call instruction through an invoke. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8664 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
e07007c2bd0dcb775ff3eecabb4c31ce8dc5fab0 |
|
15-Sep-2003 |
Chris Lattner <sabre@nondot.org> |
Fix bug: Inline/2003-09-14-InlineValue.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8514 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
ee5457cbe88b7f691f774de8515d9a94226d1b00 |
|
08-Sep-2003 |
Chris Lattner <sabre@nondot.org> |
Eliminate support for the llvm.unwind intrinisic, using the Unwind instruction instead git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8411 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
e4d90964096c240c9e29ae414792ed1246db4ee8 |
|
08-Sep-2003 |
Chris Lattner <sabre@nondot.org> |
Should invokify is always true git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8409 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
f30862f33ba8cdf90aa032e478ade6f2ce1fc0c6 |
|
26-Aug-2003 |
Chris Lattner <sabre@nondot.org> |
Remove special casing git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8144 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
657fbe68b8720d3a2644a51d2845bd79fdc5f013 |
|
24-Aug-2003 |
Chris Lattner <sabre@nondot.org> |
rethrow is really the language independent primitive here. "throw" can be written in terms of it and llvm.exc.setcurrent. Rework the intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8111 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
80a38d245359cb0a3be8f78f5d7d911232886b9a |
|
24-Aug-2003 |
Chris Lattner <sabre@nondot.org> |
*** Implement inlining of Invoke instructions! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8106 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
7152c237b46a920b29d5605af934766b8f9a07a1 |
|
24-Aug-2003 |
Chris Lattner <sabre@nondot.org> |
Implement: Inline/cfg_preserve_test.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8099 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|
ca398dc3989d35e8516489fd163e012133bd41cb |
|
29-May-2003 |
Chris Lattner <sabre@nondot.org> |
* Separate all of the grunt work of inlining out into the Utils library. * Make the function inliner _significantly_ smarter. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6396 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/InlineFunction.cpp
|