similar to: [LLVMdev] outlining in llvm

Displaying 20 results from an estimated 1000 matches similar to: "[LLVMdev] outlining in llvm"

2015 Apr 19
3
[LLVMdev] global allocation IR instruction
Hi all, In order to allocate memory on the stack there is AllocaInst instruction. What is the similar instruction/way to allocate memory on the global area? Thanks, Tehila. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150419/54298396/attachment.html>
2015 May 25
2
[LLVMdev] global variable uses
Hi, I'm trying to change all uses of a global variable so they'll use a different global variable. For instance, I have: @a = global [100 x [100 x i64]] zeroinitializer, align 16 @b = global [100 x [100 x i64]] zeroinitializer, align 16 And I want to change the use %arrayidx = getelementptr inbounds [100 x [100 x i64]]* @a, i32 0, i64 %3 to %arrayidx = getelementptr inbounds
2015 Dec 29
2
Running DCE after my pass
Hi, I wrote an IR pass and it adds some instructions that are not used. For example: %1 = call i64 @foo() When %1 is not used at all. I thought that running DCE (-dce) or DIE (-die) after my pass will remove such instructions, but it didn't. Why? And is there a way to do that? Thanks, Tehila. -------------- next part -------------- An HTML attachment was scrubbed...
2013 Dec 26
2
[LLVMdev] Arguments to IRBuilder CreateCall function
Hi, I need to pass some arguments to CreateCall function (as Value *). For example, I need to pass a 64 bit integer (with a value I calculate). How can I convert the 64 bit integer to a value * in order to pass it? Thanks a lot, Tehila. -------------- next part -------------- An HTML attachment was scrubbed... URL:
2014 Mar 29
2
[LLVMdev] Cast specific pointer type to generic one
Hi, Suppose I have a pointer to "something" (a structure I defined) and I want to pass the pointer to a generic function, that gets a 64-bit address pointer. How do I do that? For instance: The function is: void Foo (void *); I get the specific pointer using getPointerOperand() on a store instruction that store to it: inst->getPointerOperand()->getType() Now I want
2016 Apr 12
2
llvm outlining question
I'm not aware of anything else in LLVM that performs outlining. Ayal (CCed) may be able to help you regarding CodeExtractor fixes. Thanks, Michael On 12 April 2016 at 14:21, Minghwa Wang <mwang2 at cse.scu.edu> wrote: > Thank you Michael and Tom for the quick reply. > > According to your experience and comments, CodeExtractor is buggy only > works for special cases but
2016 Apr 12
2
llvm outlining question
CodeExtractor sort of does this. First, it's a utility, not a pass - you'd still need to wrap it up with pass that actually causes it to outlines what you want it to outline. Second, it's a bit buggy. There are, as far as I know, two in-tree users of this utility: bugpoint, and partial inlining. Both of them are fairly specialized use-cases, and don't actually exercise the full
2016 Apr 12
2
llvm outlining question
Is there any support for outlining in llvm? As we know outlining is the opposite of inlining and while refactoring, if we can outlining common code into functions, then function merge (supported by llvm) can be more efficient in reducing code size. If llvm support outlining, how to use it? Any documentation for it? Thanks, Ming-Hwa -------------- next part -------------- An HTML attachment was
2014 Dec 09
3
[LLVMdev] [cfe-dev][Openmp-dev] Clang Plugin to analyze OpenMP AST
Hi, I am writing a plugin to get information about the OpenMP constructs from the AST. I am basically writing a “RecursiveASTVisitor” and I am trying to find the OpenMP statement and get information like filename and line of code. When I am visiting recursively each statement I have my own switch on the “StmtClass” and for now I am focusing on “OMPParallelForDirectiveClass”. In my understanding,
2017 Aug 29
3
[RFC] Enhance Partial Inliner by using a general outlining scheme for cold blocks
I second the fact that a way to outline specific function regions independently of the partial inliner sound very useful. I am not sure however if we would want a mode within the partialInliner or something completely independent. As a general question, does anybody has a clear idea of what are the constraints on the region CodeExtractor is currently able to handle ? Going through the code, it
2014 Dec 03
1
[LLVMdev] RFC: How to represent SEH (__try / __except) in LLVM IR
Hi Reid, I saw your patch but haven’t looked closely at it yet. I do have a work in progress for the outlining. I expect to have something ready to share pretty soon, hopefully by the end of the week. It won’t be ready for primetime, as it’s making a whole lot of assumptions about the structure of the IR, but I think it will work with a sample IR file based on what you posted in your earlier
2019 Jan 22
2
[RFC] Late (OpenMP) GPU code "SPMD-zation"
We could still do that in clang, couldn't we? Get Outlook for Android<https://aka.ms/ghei36> ________________________________ From: Alexey Bataev <a.bataev at outlook.com> Sent: Tuesday, January 22, 2019 12:52:42 PM To: Doerfert, Johannes Rudolf; cfe-dev at lists.llvm.org Cc: openmp-dev at lists.llvm.org; LLVM-Dev; Finkel, Hal J.; Alexey Bataev; Arpith Chacko Jacob Subject: Re:
2019 Jan 22
3
[RFC] Late (OpenMP) GPU code "SPMD-zation"
We would still know that. We can do exactly the same reasoning as we do now. I think the important question is, how different is the code generated for either mode and can we hide (most of) the differences in the runtime. If I understand you correctly, you say the data sharing code looks very different and the differences cannot be hidden, correct? It would be helpful for me to understand your
2019 Jan 22
2
[RFC] Late (OpenMP) GPU code "SPMD-zation"
Could you elaborate on what you refer to wrt data sharing. What do we currently do in the clang code generation that we could not effectively implement in the runtime, potentially with support of an llvm pass. Thanks, James Get Outlook for Android<https://aka.ms/ghei36> ________________________________ From: Alexey Bataev <a.bataev at outlook.com> Sent: Tuesday, January 22, 2019
2019 May 02
2
[RFC] Proposed interplay of Clang & Flang & LLVM wrt. OpenMP [@Flang-dev]
Hi, [I started this discussion on a single mailing list (flang-dev [0]) but this is a notice to the others (llvm, clang, openmp) so we hopefully get all interested parties involved.] This is an RFC for the design of the OpenMP front-ends under the LLVM umbrella. It is necessary to talk about this now as Flang (aka. F18) is maturing at a very promising rate and about to become a sub-project
2019 Jan 23
1
[RFC] Late (OpenMP) GPU code "SPMD-zation"
We are working on OpenMP target offloading for GPUs in Flang, and adopting the same code generation strategy. The proposal is affecting us. It would be nice to know more details about the proposal. So we can prepare ourselves to adapt flang (if everything goes on the way). Have you find and a solution for data sharing? How are you going to manage data sharing for SPMD and non-SPMD? From: cfe-dev
2015 Feb 11
2
[LLVMdev] RFC: Native Windows C++ exception handling
These are exactly the sorts of code transformations we want to allow by delaying the outlining until later. By keeping such code inlined in the parent function until after optimization, we enable a lot of core optimizations like SROA. For example, we should be able to completely eliminate wrappers like unique_ptr that would otherwise stay around due to the pointer escaped to the destructor call
2019 Jan 22
7
[RFC] Late (OpenMP) GPU code "SPMD-zation"
Where we are ------------ Currently, when we generate OpenMP target offloading code for GPUs, we use sufficient syntactic criteria to decide between two execution modes: 1) SPMD -- All target threads (in an OpenMP team) run all the code. 2) "Guarded" -- The master thread (of an OpenMP team) runs the user code. If an OpenMP distribute region is encountered,
2017 Sep 13
1
Adding pragma related metadata to only one loop
Hi everyone, I wanted to assign a new pragma for loops in clang. Let's call it "#pragma XXX" which can be applied to any loop in the entire loop hierarchy. I added the support for my pragma by following the same steps as were being used in the default implementation of "unroll" pragma. But now, when I compile any program using clang to llvm IR it attaches the pragma
2015 Feb 12
2
[LLVMdev] RFC: Native Windows C++ exception handling
> We'd have to hoist a + b to somewhere that dominates L1 and L2. I think the only BB in your program that dominates is the entry block I don't follow. What path do you see from entry to either L1 or L2 that doesn't pass through the indirectbr? In order to reach either L1 or L2, the call to maybe_throw() must raise an exception (else we'd return 0 from foo), the exception must