search for: argumentpromot

Displaying 20 results from an estimated 37 matches for "argumentpromot".

2008 May 08
2
[LLVMdev] StructRetPromotion and linkage
Hi all, I was looking at the StructRetPromotion pass this morning and noticed it doesn't look at a function's linkage at all. Since it changes the signature of the function, I would say it should only change internal functions, like ArgumentPromotion does for example. Is there some implicit check I'm missing, or should an explicit check really be added? Gr. Matthijs -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 189 bytes Desc: Digital signature U...
2014 Oct 07
2
[LLVMdev] Debug Info and MergeFunctions Transform
Hi Stepan, After discovering several bugs in ArgumentPromotion and DeadArgumentElimination where llvm::Functions were replaced with similar functions (with the same name) to transform their type in some way, I started looking at all calls to llvm::Function::takeName to see if there were any other debug info quality bugs in similar callers. One such caller...
2008 Apr 18
1
[LLVMdev] PATCH allow for promoting any size struct arguments
Hi, the ArgumentPromotion pass replaces aggregrate function arguments by multiple individual arguments. The default pass only does this when the aggregrate has 3 or less elements, otherwise the code will be unchanged. I have a need to always promote aggregrate arguments, even when there are a lot of them. The attached...
2014 Oct 07
2
[LLVMdev] Debug Info and DFSan
Hi Peter, After discovering several bugs in ArgumentPromotion and DeadArgumentElimination where llvm::Functions were replaced with similar functions (with the same name) to transform their type in some way, I started looking at all calls to llvm::Function::takeName to see if there were any other debug info quality bugs in similar callers. One such caller...
2014 Oct 12
2
[LLVMdev] Debug Info and MergeFunctions Transform
...our mail briefly, > tomorrow I'll provide you with detailed information. By now you could > use tests from  $LLVM/test/Transforms/MergeFunc/ as examples. > > Cheers! > -Stepan > > David Blaikie wrote: >>  Hi Stepan, >> >>  After discovering several bugs in ArgumentPromotion and >>  DeadArgumentElimination where llvm::Functions were replaced with similar >>  functions (with the same name) to transform their type in some way, I >>  started looking at all calls to llvm::Function::takeName to see if there >>  were any other debug info quality bu...
2016 Jun 16
2
Intended behavior of CGSCC pass manager.
...t;> >> thanks, >> >> David >> >> >> >> >>> Sean:~/pg/llvm % git grep 'public CallGraphSCCPass' >>> include/llvm/Transforms/IPO/InlinerPass.h:struct Inliner : public >>> CallGraphSCCPass { >>> lib/Transforms/IPO/ArgumentPromotion.cpp: struct ArgPromotion : public >>> CallGraphSCCPass { >>> lib/Transforms/IPO/FunctionAttrs.cpp:struct >>> PostOrderFunctionAttrsLegacyPass : public CallGraphSCCPass { >>> lib/Transforms/IPO/PruneEH.cpp: struct PruneEH : public >>> CallGraphSCCPas...
2014 Oct 07
2
[LLVMdev] Debug Info and DFSan
On Tue, Oct 7, 2014 at 11:48 AM, Peter Collingbourne <peter at pcc.me.uk> wrote: > On Tue, Oct 07, 2014 at 10:04:30AM -0700, David Blaikie wrote: > > Hi Peter, > > > > After discovering several bugs in ArgumentPromotion and > > DeadArgumentElimination where llvm::Functions were replaced with similar > > functions (with the same name) to transform their type in some way, I > > started looking at all calls to llvm::Function::takeName to see if there > > were any other debug info quality bu...
2008 Jun 02
2
[LLVMdev] Plans considering first class structs and multiple return values
...em out? A problem of that seems to be that it is hard for sretpromotion to simply add return values, since it doesn't know whether to add to the existing struct return type (if any) or create a new struct return type. I guess integrating these two passes makes the most sense, then. I guess the argumentpromotion pass also needs to be adapted to promote first class struct arguments (probably handle them identical to how byval pointer-to-struct are handled now), but I don't currently have need of that. Lastly, I'll modify IPConstProp and DeadArgElim to properly handle multiple return values and d...
2008 Jun 02
0
[LLVMdev] Plans considering first class structs and multiple return values
...saying here. What do you mean by flattening out nested structs? If you mean moving all the members in nested structs to be members of a single non-nested struct, that doesn't really buy anything, because extractvalue and insertvalue can index directly into nested structs. > > I guess the argumentpromotion pass also needs to be adapted to > promote first > class struct arguments (probably handle them identical to how byval > pointer-to-struct are handled now), but I don't currently have need > of that. > > Lastly, I'll modify IPConstProp and DeadArgElim to properly ha...
2014 Oct 07
2
[LLVMdev] Debug Info and DFSan
...t; >> >> On Tue, Oct 7, 2014 at 11:48 AM, Peter Collingbourne <peter at pcc.me.uk> >> wrote: >> >>> On Tue, Oct 07, 2014 at 10:04:30AM -0700, David Blaikie wrote: >>> > Hi Peter, >>> > >>> > After discovering several bugs in ArgumentPromotion and >>> > DeadArgumentElimination where llvm::Functions were replaced with >>> similar >>> > functions (with the same name) to transform their type in some way, I >>> > started looking at all calls to llvm::Function::takeName to see if >>> th...
2011 Sep 19
2
[LLVMdev] How to replace a function using llvm?
Hi all, I am a newbie and have a question. Using llvm, I want to change the original function into a new function which have an additional pointer argument: original function: int haha(int n) { .... } new function: int haha(int n, *ptr) { ... } Could you give me a suggestion? Thank you in advance. Shawn -------------- next part -------------- An HTML attachment was scrubbed... URL:
2018 Jan 17
0
[RFC] [TargetTransformInfo] Introduce hook to tell middle-end to not worry about register pressure
Hi all, Currently in the llvm middle-end, we disable some optimizations because we worry about the register pressure, (e.g. GVNHoist and ArgumentPromotion). However, in the architecture that are register-rich, e.g. FPGAs, we do not need to worry about the register pressure at all. For these architecures, we may want to optimization the LLVM IR without worrying about the register pressure. I suggest that we introduce a hook in the TargetTransform...
2007 Dec 21
2
[LLVMdev] Interprocedural optimizations in LLVM
Hi Everyone, Can Someone tell me all the interprocedural optimizations that LLVM 2.1 supports. Thank You, Naineet Patel CSE IITB
2008 Jul 10
0
[LLVMdev] Argpromotion improvements (and fix for PR 2498)
Hi All, in the last few days I've been working on a fix for PR2498. Currently ArgumentPromotion is a bit overzealous when promoting arguments: If any load of a pointer argument happens in the entry block (even a partial load for a struct pointer), it assumes that all loads in the function can be promoted to the caller (and thus executed uncondtionally). This is clearly wrong, as PR2498 ill...
2004 May 01
0
[LLVMdev] opt, llcc, ll++, -O1, -O2, -O3
...is information is available in the comments at the top of the file for the optimization). This has been on my TODO list for about 2.5 years now, but I have a *very* long TODO list. :) Here are some examples of the header comments: http://llvm.cs.uiuc.edu/cvsweb/cvsweb.cgi/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp?rev=1.5&content-type=text/x-cvsweb-markup http://llvm.cs.uiuc.edu/cvsweb/cvsweb.cgi/llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp?rev=1.16&content-type=text/x-cvsweb-markup http://llvm.cs.uiuc.edu/cvsweb/cvsweb.cgi/llvm/lib/Transforms/Scalar/LICM.cpp?rev=1.59&content-type=t...
2004 May 01
4
[LLVMdev] opt, llcc, ll++, -O1, -O2, -O3
Hi devels, there are two issues concerning invoking optimizations: 1. this document: http://llvm.cs.uiuc.edu/docs/GettingStarted.html is very nice, it would be good though to add in a section An Example Using the LLVM Tool Chain examples on optimization step. 2. If i am not wrong there is no tool, which integrates all steps: llvmgcc->opt->llc into something like llcc (and
2014 Oct 07
2
[LLVMdev] Debug Info and DFSan
...gbourne <peter at pcc.me.uk > > > > >> wrote: > > >> > > >>> On Tue, Oct 07, 2014 at 10:04:30AM -0700, David Blaikie wrote: > > >>> > Hi Peter, > > >>> > > > >>> > After discovering several bugs in ArgumentPromotion and > > >>> > DeadArgumentElimination where llvm::Functions were replaced with > > >>> similar > > >>> > functions (with the same name) to transform their type in some > way, I > > >>> > started looking at all calls to llvm:...
2008 Sep 08
2
[LLVMdev] Overzealous PromoteCastOfAllocation
...2 alloca in the first place. Also, in the code where I originally noticed this problem, the resulting code is more complex and less likely to be simplified again. In particular, instead of the @empty function I have a call to memmove, whose destination is passed as an argument to another function. ArgumentPromotion is able to split up this struct argument and remove the memmove, but by then the alloca is already screwed up by instcombine and scalarrepl is no longer able to properly expand it. Any comments on this problem? Do you agree that the current replacement policy of PromoteCastOfAllocation is a bi...
2014 Oct 07
2
[LLVMdev] Debug Info and DFSan
...>> wrote: > > > > >> > > > > >>> On Tue, Oct 07, 2014 at 10:04:30AM -0700, David Blaikie wrote: > > > > >>> > Hi Peter, > > > > >>> > > > > > >>> > After discovering several bugs in ArgumentPromotion and > > > > >>> > DeadArgumentElimination where llvm::Functions were replaced > with > > > > >>> similar > > > > >>> > functions (with the same name) to transform their type in some > > > way, I > > > >...
2008 Jun 02
2
[LLVMdev] Plans considering first class structs and multiple return values
...t return and insertvalue instead?). Since an sret function will, by definition, have a void return type, the new return values will never have to be merged. In that light, I will be probably building an internal (i.e., to our company) pass that flattens struct return values. > > I guess the argumentpromotion pass also needs to be adapted to > > promote first > > class struct arguments (probably handle them identical to how byval > > pointer-to-struct are handled now), but I don't currently have need > > of that. > > > > Lastly, I'll modify IPConstProp...