search for: inlined

Displaying 20 results from an estimated 17845 matches for "inlined".

Did you mean: inline
2015 Oct 22
8
RFC: Inlining report
...fore we can determine how we need change the compiler's inlining choices to get better performance for an application, we need to have a clear picture of the compiler's inlining choices and what motivated them. Many compilers like LLVM and GCC provide informational notes when a function is inlined, but these notes provide only a "blow by blow" description of what the compiler did, rather than a high level illustration of the result. This high level picture can be provided by an inlining report. Over the years, I've worked with several compilers that provide inlining reports,...
2010 Nov 24
7
[LLVMdev] LLVM Inliner
...form early inlining as one of the local (per function) optimizations followed by scalar opt clean up. This will sharpen the summary information. (Note the inline summary update does not consider the possible cleanup) 3) recursive inlining is not supported 4) function with indirect branch is not inlined. What source construct does indirect branch instr correspond to ? variable jump? 5) fudge factor prefers functions with vector instructions -- why is that? 6) There is one heuristc used in inline-cost computation seems wrong: // Calls usually take a long time, so they make the inlining gain s...
2010 Nov 28
0
[LLVMdev] LLVM Inliner
...per-function passes on bar. This generally shrinks it, and prevents "abstraction penalty" from making bar look too big to inline. 3. Run the inliner on foo. Since foo calls bar, we consider inlining bar into foo and do so if profitable. 4. Run the per-function passes on foo. If bar got inlined, this means that we're running the per-function passes over the inlined contents of bar again. In a traditional optimizer like GCC's, you end up with problems where you have to set a high inline threshold due to inlining-before-optimizing causing "abstraction penalty problems"....
2009 Aug 26
7
[LLVMdev] inlining hint
...code will be. In the case of C++, because of abstraction and other things, the code may be compiled to something much larger than the source looks. The second part of this is that there are a lot of reasons for things to be defined inline in C++ even if we don't want it to actually be inlined. For example, lib/VMCore/ConstantsContext.h:349 has a massive inline function that is there because it is part of a template specialization and *it is more convenient* to define it inline. I really don't think that method should be inlined, but it makes the source code tidier to do t...
2010 Nov 24
0
[LLVMdev] LLVM Inliner
...hat early inlining would do for us that isn't achieved with this model? (Actually, there is another inliner pass, but it's for __attribute__((always_inline)) so it's rather uninteresting.) > 3) recursive inlining is not supported > > 4) function with indirect branch is not inlined. What source construct > does indirect branch instr correspond to ? variable jump? Right. It's for "goto *ptr;". Nick > 5) fudge factor prefers functions with vector instructions -- why is that? > > 6) There is one heuristc used in inline-cost computation seems wrong: &...
2015 Jul 10
3
[LLVMdev] Inline hint for methods defined in-class
...also inline functions as if they had been declared with an inline specifier. > > And, frankly, I don't think the intent of the drafting was to create > a bifurcated system. If we're to read "inline function" as something > other than, "a function intended to be inlined", it seems the > standard would have used a different term to indicate the linkage > effect from the hinting. > > > It does; the terms are "declared with an inline specifier" and > "inline function" > To be pedantic, "declared with an inline sp...
2010 Nov 24
0
[LLVMdev] LLVM Inliner
...one of the local (per function) > optimizations followed by scalar opt clean up. This will sharpen the summary > information.  (Note the inline summary update does not consider the possible > cleanup) > 3)  recursive inlining is not supported > 4) function with indirect branch is not inlined. What source construct does > indirect branch instr correspond to ? variable jump? This corresponds to functions that use GCC's labels-as-values extension, not things like switch statements or virtual calls, so this really only applies to things like interpreter loops, which you don't u...
2006 Mar 15
4
[LLVMdev] Inline hints for *compiler clients*
On Mar 15, 2006, at 11:15 AM, Chris Lattner wrote: > On Wed, 15 Mar 2006, Vikram S. Adve wrote: >>> Why can't the compiler pass just call InlineFunction(CallSite) on >>> the callsite it wants inlined? The only way that can fail is if >>> LLVM cannot ever inline the call (e.g. it uses varargs). > >> In some cases, that would be fine. But in other cases: >> (1) It cannot "un-inline" any function that was previously inlined. > > I'm not following. W...
2009 Aug 26
4
[LLVMdev] inlining hint
On Aug 26, 2009, at 2:31 PM, David Vandevoorde wrote: > > >> I know/hope that the proposal isn't for the inlinehint to be a >> synonym >> for "force inline", it would just raise the threshold to increase the >> likeliness that it would be inlined. The question is whether >> "something being c++ inline" in any way is really trustworthy, and if >> so, whether we should look at syntactic vs semantic inline. > > > FWIW, I've been involved in a couple of attempts by commercial > compilers to relegate "...
2009 Aug 27
1
[LLVMdev] inlining hint
...t;. It's been suggested that we should omit the inlinehint on >> A, on the grounds that many C++ programmers do not know this, and >> therefore misuse the construct. > > No, no, no! :) I rely on this behavior. I assume anything I define > in the class definition will be inlined (when reasonable). I do this for > performance reasons. I would say that I am a new and inexpert C++ programmer, and I always thought the idea of putting methods in headers was not a way of saying to the compiler "please inline this" but rather a way to expose it to the compiler so t...
2019 Jun 14
2
memory leak in vhost_net_ioctl
Hello Syzbot On Fri, 14 Jun 2019 02:26:02 +0800 syzbot wrote: > > Hello, > > syzbot has tested the proposed patch but the reproducer still triggered crash: > memory leak in vhost_net_ioctl > Oh sorry for my poor patch. > ANGE): hsr_slave_1: link becomes ready > 2019/06/13 18:24:57 executed programs: 18 > BUG: memory leak > unreferenced object 0xffff88811cbc6ac0
2019 Jun 14
2
memory leak in vhost_net_ioctl
Hello Syzbot On Fri, 14 Jun 2019 02:26:02 +0800 syzbot wrote: > > Hello, > > syzbot has tested the proposed patch but the reproducer still triggered crash: > memory leak in vhost_net_ioctl > Oh sorry for my poor patch. > ANGE): hsr_slave_1: link becomes ready > 2019/06/13 18:24:57 executed programs: 18 > BUG: memory leak > unreferenced object 0xffff88811cbc6ac0
2015 Jul 10
2
[LLVMdev] Inline hint for methods defined in-class
...present in the other cases. > > And, frankly, I don't think the intent of the drafting was to > > > create > > > a bifurcated system. If we're to read "inline function" as > > > something > > > other than, "a function intended to be inlined", it seems the > > > standard would have used a different term to indicate the linkage > > > effect from the hinting. > > > > > > > > > It does; > > Also, I'll refer to whoever wrote > https://isocpp.org/wiki/faq/inline-functions, which...
2009 Aug 27
1
[LLVMdev] inlining hint
On Aug 26, 2009, at 7:02 PM, David Vandevoorde wrote: >> It's actually the other way around. llvm has always ignored the >> "inline" keyword and now we are finding out we are missing some >> important cases. > > Okay. It's the "other way around" in terms of history, but it looks > like the conclusion might be the same: Purely heuristics-based
2009 Aug 26
8
[LLVMdev] inlining hint
You may have noticed I added an "inlinehint" attribute to the IR yesterday, to represent user declarations that hint inlining would be a good idea ("inline" keyword). Chris and I have been discussing how to hook it up to the C++ FE. Consider: class X { int A(int x) {....} inline int B(int x); }; inline int X::B(int x) {...} Per the language standard, A and B
2014 Sep 04
4
[LLVMdev] Conditions that cause Clang refuse inlining a function
Hi, I want to have some functions in my code inline so I use the *inline * keyword: *inline void foo() {}* On some functions the compiler inlines the function but it fails to do so on other functions and thus I get a linkage error: *error: undefined reference to 'foo'* What are the conditions that make the compiler refuse inline? Thanks, David p.s. I know that there are ways to pass
2006 Mar 15
0
[LLVMdev] Inline hints for *compiler clients*
...e bit larger than I had intended. :) Basically what I think would be useful is an option to the inliner that gives it a list of functions to skip when inlining. My argument for this is that we have several transformations now that search for calls to specific functions; if those functions are inlined, the transform pass can no longer find the calls. I would like the list of functions excluded from inlining to be specified on the command line (as I'm using the LLVM opt command); providing a constructor to the Inliner pass that takes a list of function names to exclude from inlining migh...
2005 May 07
2
[LLVMdev] calling conventions and inlining
...g styles. E.g. we use a huge collection of small C++ > template classes and template metaclasses, most of which have very > trivial and limited functionality (think of it as some "bytecode" > expressed in classes). Of course, these method calls of these classes > _must_ be inlined, but there are also "traditional" calls to other > functions which may or may not be meant for inlining. If the inliner > just guesses one of these calls wrong (and it usually does) then > performance will drop by an order of magnitude. That's why all C++ > compilers...
2019 Jun 13
2
memory leak in vhost_net_ioctl
Hello Dmitry On Thu, 13 Jun 2019 20:12:06 +0800 Dmitry Vyukov wrote: > On Thu, Jun 13, 2019 at 2:07 PM Hillf Danton <hdanton at sina.com> wrote: > > > > Hello Jason > > > > On Thu, 13 Jun 2019 17:10:39 +0800 Jason Wang wrote: > > > > > > This is basically a kfree(ubuf) after the second vhost_net_flush() in > > > vhost_net_release(). >
2019 Jun 13
2
memory leak in vhost_net_ioctl
Hello Dmitry On Thu, 13 Jun 2019 20:12:06 +0800 Dmitry Vyukov wrote: > On Thu, Jun 13, 2019 at 2:07 PM Hillf Danton <hdanton at sina.com> wrote: > > > > Hello Jason > > > > On Thu, 13 Jun 2019 17:10:39 +0800 Jason Wang wrote: > > > > > > This is basically a kfree(ubuf) after the second vhost_net_flush() in > > > vhost_net_release(). >