similar to: [LLVMdev] Debug Info and MergeFunctions Transform

Displaying 20 results from an estimated 1000 matches similar to: "[LLVMdev] Debug Info and MergeFunctions Transform"

2014 Oct 12
2
[LLVMdev] Debug Info and MergeFunctions Transform
Hi David, After merging we always remove body of "G" (function we want to merge with "existing" one). In case with "writeThunk" we could add such info for "G", but it would be just a single string: reference to first string of "G". Ideal way here, is to merge debug information itself, and provide "F" with information for "G"
2014 Jan 17
6
[LLVMdev] MergeFunctions: reduce complexity to O(log(N))
Hi all, I propose simple improvement for MergeFunctions pass, that reduced its complexity from O(N^2) to O(log(N)), where N is number of functions in module. The idea, is to replace the result of comparison from "bool" to "-1,0,1". In another words: define order relation on functions set. To be sure, that functions could be comparable that way, we have to prove that order
2014 Jan 21
3
[LLVMdev] MergeFunctions: reduce complexity to O(log(N))
Hi Stepan, This looks interesting! Some high-level comments: - Please post the patch untarred next time. Also, I'm not sure if it's typical to provide supporting documents in .doc format; while many of us probably have access to Word, a more portable and email-friendly format (like text, markdown or rst) is probably better. - Have you profiled this? What's the speedup? I
2014 Feb 03
4
[LLVMdev] MergeFunctions: reduce complexity to O(log(N))
Hi all, Previous patch has been split onto series of small changes. On each stage (after each patch) MergeFunctions pass is compilable and stable. Please find patches in attachment for review. To apply all patches at once, use "apply-patches.sh" script as follows: 0. Place "apply-patches.sh" in same directory with patches. 1. cd <llvm-sources-dir> 2. "bash
2014 Jan 31
2
[LLVMdev] MergeFunctions: reduce complexity to O(log(N))
Hi all, Please find the updated patch in attachment: * Added some comments. * Fixed some typos. -Stepan Nick Lewycky wrote: > On 30 January 2014 01:27, Stepan Dyatkovskiy <stpworld at narod.ru > <mailto:stpworld at narod.ru>> wrote: > > Hello Sean and Tobias, > > Sean, > Thank you. Could you describe Nick's ideas in few words or give me >
2014 Jan 22
2
[LLVMdev] MergeFunctions: reduce complexity to O(log(N))
Hi Tobias, > I can't really see a way to combine our approach with your patch. What > are your thoughts? I think it is possible. Even more - we need to combine our efforts, in order to bring this pass into real live. I'have read your presentation file, and unfortunately read your patch only a little. How exactly you scan functions on 2nd stage? Could you explain the algorithm in
2014 Feb 27
3
[LLVMdev] MergeFunctions: reduce complexity to O(log(N))
Hi Nick, I tried to rework changes as you requested. One of patches (0004 with extra assertions) has been removed. > + bool isEquivalentType(Type *Ty1, Type *Ty2) const { > + return cmpType(Ty1, Ty2) == 0; > + } > > Why do we still need isEquivalentType? Can we nuke this? Yup. After applying all the patches isEquivalentType will be totally replaced with cmpType. All
2014 Jan 22
2
[LLVMdev] MergeFunctions: reduce complexity to O(log(N))
On 2014 Jan 22, at 07:35, Stepan Dyatkovskiy <stpworld at narod.ru> wrote: > Hi Raul and Duncan, > > Duncan, > Thank you for review. I hope to present fixed patch tomorrow. > > First, I would like to show few performance results: > > command: "time opt -mergefunc <test>" > > File: tramp3d-v4.ll, 12963 functions > Current
2013 Oct 27
2
[LLVMdev] Two questions about MergeFunctions pass
Hi Nick. Can you help me sort some things out in MergeFucntions pass. While I was working on MergeFunctions pass I got several questions. I hardly tried to find all the answers by myself, but there are still two questions without answer. It is about merging functions itself (not comparing). First question is: Why sometimes we use RAUW and sometimes replaceDirectCallers. Would you help me
2013 Oct 29
0
[LLVMdev] Two questions about MergeFunctions pass
On 27 October 2013 11:30, Stepan Dyatkovskiy <stpworld at narod.ru> wrote: > Hi Nick. > > Can you help me sort some things out in MergeFucntions pass. While I was > working on MergeFunctions pass I got several questions. I hardly tried to > find all the answers by myself, but there are still two questions without > answer. > > It is about merging functions itself
2019 Jan 31
5
Status of the function merging pass?
Hi, I'm interested in finding ways to reduce code size. LLVM's MergeFunctions pass seems like a promising option, and I'm curious about its status in tree. Enabling MergeFunctions gives a 1% code size reduction across the entire iOS shared cache (a collection of a few hundred system-critical DSO's). The numbers are even more compelling for Swift code. In fact, the swift compiler
2019 Feb 01
6
Status of the function merging pass?
Hi Nikita, Glad to hear that Rust code can benefit a lot from this. I have put patches to enable merge-similar functions with thinLTO. https://reviews.llvm.org/D52896 etc. <https://reviews.llvm.org/D52896> This is more powerful than existing merge-functions pass and all we need to do is port these patches to trunk llvm. I'd be happy to help with this effort. -Aditya
2014 Mar 13
2
[LLVMdev] MergeFunctions: reduce complexity to O(log(N))
Hi Nick, I have committed 0001 as r203788. I'm working on fixes for 0002 - 0014. > After reading through this patch series, I feel like I'm missing > something important. Where's the sort function? It looks like we're > still comparing all functions to all other functions. When you insert functions into std::set or its analogs it does all the job for you. Since
2020 Mar 18
2
[GSoC '20 Project Interest] - Improve MergeFunctions to incorporate MergeSimilarFunction patches and ThinLTO Support
Hello, I'm Ruijie Fang, currently a 1st-year undergraduate at Princeton University, majoring in Computer Science. I am writing to to express my interest in the Google Summer of Code project: Improve MergeFunctions to incorporate MergeSimilarFunction patches and ThinLTO Support. I've read the LCTES'14 paper and found it quite interesting and comprehensible. I've also went as far
2013 Dec 03
1
[LLVMdev] Failures on clang-mergefunc-x86_64-freeBSD9.2
Hi all, We have 4 outstanding tests on clang-mergefunc-x86_64-freeBSD9.2 builder. I have introduced issues for them in bugzilla: http://llvm.org/bugs/show_bug.cgi?id=18089 http://llvm.org/bugs/show_bug.cgi?id=18056 Since we have opened issues for these tests, can we add them to ignore-list for this builder? It allows faster catch and fix other failures (if we get them). I also wandering, may be
2014 Jan 30
3
[LLVMdev] MergeFunctions: reduce complexity to O(log(N))
Hello Sean and Tobias, Sean, Thank you. Could you describe Nick's ideas in few words or give me links to your discussion, so I could adapt my ideas to it. Tobias, Your patch fails on several modules in my benchmark (73 of ~1800 tests). I have sent one as attachment. See statistics files for more details, all the .ll files you could simply find in test-suite object directory (after
2014 Jan 28
3
[LLVMdev] MergeFunctions: reduce complexity to O(log(N))
Hi Stepan, Sorry for the delay. It's great that you are working on MergeFunctions as well and I agree, we should definitely try to combine our efforts to improve MergeFunctions. Just to give you some context, the pass (with the similar function merging patch) is already being used in a production setting. From my point of view, it would be better if we focus on improving its capability
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 is the DataFlowSanitizer, and I don't
2015 Jun 04
5
[LLVMdev] Removing AvailableExternal values in GlobalDCE (was Re: RFC: ThinLTO Impementation Plan)
On Thu, Jun 4, 2015 at 3:58 PM, Duncan P. N. Exon Smith < dexonsmith at apple.com> wrote: > > > Personally, I think the right approach is to add a bool to > createGlobalDCEPass defaulting to true named something like > IsAfterInlining. In most standard pass pipelines, GlobalDCE runs after > inlining for obvious reasons, so the default makes sense. The special case > is
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