search for: lunarg

Displaying 20 results from an estimated 30 matches for "lunarg".

2012 Jun 21
0
[LLVMdev] Cloning block for newbie
....com> wrote: > Thank you for your quick answer... > > > "You can loop over the instruction's operands to see if they are > contained in VMap" > > I have no clue of to do that, do you have an example ? > > > > 2012/6/21 Michael Ilseman <michael at lunarg.com> >> >> CloneBasicBlock does a fairly shallow cloning; the instructions >> themselves are cloned but their operands are not replaced with any >> previously cloned values. >> >> Example: >> orig: >>  %a = ... >>  %b = fadd %a, ... >>...
2011 Nov 08
2
[LLVMdev] loadable passes with dependencies?
...ysisUsage(AnalysisUsage &AU) const { AU.addRequired<DominatorTree>(); } The other line DominatorTree *dt = &getAnalysis<DominatorTree>(); Is for later use when I try to use PromoteMemToReg On Tue, Nov 8, 2011 at 4:22 PM, Michael Ilseman <michael at lunarg.com> wrote: > Something's different here, earlier in the thread you said you had: > void getAnalysisUsage(AnalysisUsage &AU) const { >                AU.addRequired<DominatorTree>(); > } > Now you have: > void getAnalysisUsage(AnalysisUsage &AU) const { >  ...
2011 Aug 02
1
[LLVMdev] Grabbing Result of an Instruction.
Thanks Michael. I wish to get Type of %1 i.e. result of instruction. Let me try out your suggestion. But It is still not clear to me how will dyn_cast will help here. I already have pointer to this particular instruction. On Mon, Aug 1, 2011 at 5:34 PM, Michael Ilseman <michael at lunarg.com> wrote: > In LLVM, %1 is the instruction itself. This is because LLVM IR is in > SSA, so the "=" really means equality. If you look at a use of %1, > e.g. as an operand to another instruction, you'll see that it's the > instruction itself that is there (i.e. yo...
2012 Jun 22
1
[LLVMdev] Cloning block for newbie
Thank you for your help. It's working now. I wasn't aware of the usefulness of the User class. The ValueMapper.cpp's "RemapInstruction()" also helped me a lot to remap phi nodes and metadatas. Thank you very much. 2012/6/21 Michael Ilseman <michael at lunarg.com> > Please reply-all so that the thread is kept on llvmdev. > > The LLVM Programmer's Manual has examples of how to iterate over many > common structures, such as instructions in a basic block[1]. Other > than that, you can check the source code or doxygen[2]. > > Ba...
2011 May 09
1
[LLVMdev] get basic blocks inside a loop
Thanks Michael. Can you please explain you way a bit more? Did you run a function pass then a loop pass? On Mon, May 9, 2011 at 12:56 PM, Michael Ilseman <michael at lunarg.com> wrote: > Whenever I was tying to do that (in version 2.8), it didn't give them > to me in a topological order. What I did, as a hack-ish temporary > measure, was rely on Function's ordering, and just iterated over all > the blocks in the function, checking to see if the...
2012 Jun 21
3
[LLVMdev] Cloning block for newbie
Hello everybody. I'm quite new to LLVM and I'm encontering problems with cloning basic blocks. My two basic blocks are in the same function and it doesn't really matter how the cloned one behave for the moment. Of course, to do so, I used the cloning.h 's method "CloneBasicBlock" but I have the "Instruction does not dominate all uses!" error. I know what it
2011 Aug 01
3
[LLVMdev] Grabbing Result of an Instruction.
What member function to use if I wish to operate on results of an instruction. eg. Instruction %1 = getelementptr inbounds [10 x i32]* %a, i32 0, i32 %0 I->getOperand will give me the operands. How should I get hold of %1? Thanks, Manish -------------- next part -------------- An HTML attachment was scrubbed... URL:
2011 Nov 08
0
[LLVMdev] loadable passes with dependencies?
...n I try to use PromoteMemToReg Isn't DominatorTree a FunctionPass? If your pass is a ModulePass, you need to pass a Function * or Function & to getAnalysis<>(): getAnalysis<DominatorTree>(F) -- John T. > > On Tue, Nov 8, 2011 at 4:22 PM, Michael Ilseman<michael at lunarg.com> wrote: >> Something's different here, earlier in the thread you said you had: >> void getAnalysisUsage(AnalysisUsage&AU) const { >> AU.addRequired<DominatorTree>(); >> } >> Now you have: >> void getAnalysisUsage(AnalysisUsag...
2011 Nov 09
1
[LLVMdev] loadable passes with dependencies?
...n't DominatorTree a FunctionPass?  If your pass is a ModulePass, you need > to pass a Function * or Function & to getAnalysis<>(): > > getAnalysis<DominatorTree>(F) > > -- John T. > >> >> On Tue, Nov 8, 2011 at 4:22 PM, Michael Ilseman<michael at lunarg.com> >>  wrote: >>> >>> Something's different here, earlier in the thread you said you had: >>> void getAnalysisUsage(AnalysisUsage&AU) const { >>>                AU.addRequired<DominatorTree>(); >>> } >>> Now you have: &g...
2015 Feb 17
7
[LLVMdev] [PATCH 0/2 v3] add visibility hidden to tls entry points
Patch 1 adds a check for the compilers visibility macro to configure.ac. Patch 2 avoids redefined symbol errors in clang of the tls entry points. Based on a suggestion from Rafael Ávila de Espíndola <rafael.espindola at gmail.com> in http://llvm.org/bugs/show_bug.cgi?id=19778. Tested with gcc 4.9 and clang 3.6(rc) Marc Dietrich (2): configure: add visibility macro detection to configure
2015 Feb 17
3
[LLVMdev] [PATCH 2/2 v3] add visibility hidden to tls entry points
...builddir)/src/mapi > > include Makefile.sources > diff --git a/src/mapi/entry_x86-64_tls.h b/src/mapi/entry_x86-64_tls.h > index 71e9d60..2c5d64d 100644 > --- a/src/mapi/entry_x86-64_tls.h > +++ b/src/mapi/entry_x86-64_tls.h > @@ -25,6 +25,7 @@ > * Chia-I Wu <olv at lunarg.com> > */ > > +#include "macros.h" > #include "u_macros.h" > > __asm__(".text\n" > @@ -62,8 +63,7 @@ entry_patch_public(void) > { > } > > -static char > -x86_64_entry_start[]; > +extern const char HIDDEN x86_64_entry_star...
2011 Aug 02
0
[LLVMdev] Grabbing Result of an Instruction.
In LLVM, %1 is the instruction itself. This is because LLVM IR is in SSA, so the "=" really means equality. If you look at a use of %1, e.g. as an operand to another instruction, you'll see that it's the instruction itself that is there (i.e. you can dyn_cast<Instruction> it). On Mon, Aug 1, 2011 at 5:27 PM, Manish Gupta <manishg at cs.ucsd.edu> wrote: > What
2011 Aug 02
0
[LLVMdev] Grabbing Result of an Instruction.
...get Type of %1 i.e. result of instruction. Let me try out your > suggestion. But It is still not clear to me how will dyn_cast will help > here. I already have pointer to this particular instruction. **** > > ** ** > > On Mon, Aug 1, 2011 at 5:34 PM, Michael Ilseman <michael at lunarg.com> > wrote:**** > > In LLVM, %1 is the instruction itself. This is because LLVM IR is in > SSA, so the "=" really means equality. If you look at a use of %1, > e.g. as an operand to another instruction, you'll see that it's the > instruction itself that is t...
2011 May 09
0
[LLVMdev] get basic blocks inside a loop
Whenever I was tying to do that (in version 2.8), it didn't give them to me in a topological order. What I did, as a hack-ish temporary measure, was rely on Function's ordering, and just iterated over all the blocks in the function, checking to see if the loop contains that block. Not at all ideal, and what I was writing later evolved to not need the topological ordering constraint, so I
2011 May 09
2
[LLVMdev] get basic blocks inside a loop
Hi all, I have a question about llvm::LoopBase getBlocks() method. Does it return the basic blocks inside the loop in random order? I need to order the blocks in some valid topological ordering of the AST. If getBlocks() does not do that, what can I do to find the ordering? Thanks, Naznin -------------- next part -------------- An HTML attachment was scrubbed... URL:
2011 Nov 08
0
[LLVMdev] loadable passes with dependencies?
Something's different here, earlier in the thread you said you had: void getAnalysisUsage(AnalysisUsage &AU) const { AU.addRequired<DominatorTree>(); } Now you have: void getAnalysisUsage(AnalysisUsage &AU) const { DominatorTree *dt = &getAnalysis<DominatorTree>(); I'm sort of confused, why did this change happen? I think the
2011 May 17
0
[LLVMdev] 2.9 segfault when requesting for both LoopInfo and DominatorTree analyses.
...ded module(as per lib/Transforms/Hello) It does seem possible from the discussion, to use LoopInfo inside a ModulePass. I am wondering what the fix to this problem was. Also, the code works in 2.7.(I did not try 2.8) Thanks, Arushi On Tue, May 3, 2011 at 6:18 PM, Michael Ilseman <michael at lunarg.com> wrote: > When migrating my project to 2.9, I've encountered a strange segfault > where if a ModulePass's getAnalysisUsage adds LoopInfo and > DominatorTree, then llvm::PMTopLevelManager::findAnalysisUsage will > segfault. What's odd is that if I rearrange this (add...
2011 Aug 31
0
[LLVMdev] Getting rid of phi instructions?
> the next tool reading the IR does not like phis when it's generating VHDL. If you're doing a conversion from LLVM IR to some other non-SSA IR (like the tool's), you can do the phi node removal yourself as you convert. Basically, every predecessor block referenced by a phi node will have an assignment to that variable before branching. There are techniques to make the resultant
2011 Aug 31
4
[LLVMdev] Getting rid of phi instructions?
On 30.8.2011, at 19.19, Eli Friedman wrote: > reg2mem won't do quite this transformation... not sure exactly what you need. I need to get rid of phis. This code is compiled from C++ and for some functions there are no phis, but multiple call instructions. I am targeting hardware in the end, and the next tool reading the IR does not like phis when it's generating VHDL. My questions may
2011 Nov 08
4
[LLVMdev] loadable passes with dependencies?
Just shows me what I expect void getAnalysisUsage(AnalysisUsage &AU) const { DominatorTree *dt = &getAnalysis<DominatorTree>(); So I'm only using it for DominatorTree(so I can use PromoteMemToReg). Thanks On Tue, Nov 8, 2011 at 2:28 PM, Tobias Grosser <tobias at grosser.es> wrote: > On 11/08/2011 07:33 PM, ret val wrote: >> >> Sorry to keep dragging