similar to: simplify CFG Pass in llvm

Displaying 20 results from an estimated 600 matches similar to: "simplify CFG Pass in llvm"

2017 May 26
2
Moving instructions from source Basic Block to dest Basic Block
Hi, I have been trying to move some instructions between basic blocks , After looking at the API , I found llvm::Instruction::clone() but there is no result value for this. For example- source Basic block : continuation: ; preds = %else, %then %iftmp = phi i32 [ 5, %then ], [ 9, %else ] store i32 %iftmp, i32* %datasize ; 3 instructions below
2017 Jun 09
2
Subclassing LLVM Type
This [1] might worth reading, Malhar. [1] http://llvm.org/docs/HowToSetUpLLVMStyleRTTI.html 2017-06-10 4:12 GMT+08:00 Tim Northover via llvm-dev < llvm-dev at lists.llvm.org>: > On 9 June 2017 at 12:03, Jajoo, Malhar via llvm-dev > <llvm-dev at lists.llvm.org> wrote: > > Is there some way around this ( without suggesting a change to my entire > AST ) ? > > LLVM
2017 May 25
3
UD and DU chains for LLVM IR before running mem2reg
Hi, Just had a simple question , The use-def and def-use chains provided by llvm::Value class , would they work for IR that has not been optimized by the "mem2reg" pass ? ( ie, IR code that contains memory interactions and is not in SSA form yet ) Thanks, Malhar -------------- next part -------------- An HTML attachment was scrubbed... URL:
2017 Jun 09
2
Subclassing LLVM Type
On 9 June 2017 at 15:29, Jajoo, Malhar via llvm-dev <llvm-dev at lists.llvm.org> wrote: > Thanks for that , I have read the documentation on this , but I would like to know > if it would be the right thing to do , ie , changing the enum within llvm::Type Well, I find the idea of a non-canonical DummyType slightly disturbing (I don't think it's something we'd ever support
2017 May 26
2
Printing out a 128 bit decimal
Hi, I was wondering how I can print out the result of some arithmetic on 128 bit integers. After having a look at the API , it seems it is possible to get the integer value from the "ConstantInt::getSextValue() " but the return value is only a int64_t. I wish to print it on the console output and printing as a string or decimal ( using C standard library printf ) My Question :
2017 Jun 09
2
Subclassing LLVM Type
Hi, I was wondering if it was possible to create a Dummy Type by subclassing LLVM Type. I do not want to create a new type or even do much with this dummy type , all I need is a placeholder type until I generate IR. I want to use this approach as most of my AST is already configured to accept a Type* and not a DummyType* ( which is my own class ) I explored this a bit and did manage to
2017 May 23
3
Removing "fno-rtti" flag from llvm-config --cxxflags
Hi everyone, I just had a question - I am aware that LLVM supports it's own form of RTTI ( using dyn_cast<>() ,etc) but I wish to use C++ RTTI currently. I have tried building with "cmake -G "Unix Makefiles" -LLVM_ENABLE_RTTI=ON" but that doesnt seem to remove the "fno-rtti" flag from llvm-config and I still get an error when I try using
2017 May 29
2
Print 128 bit value at runtime using printf
Hi, I was trying to print out a 128 bit result at runtime using a call to printf in LLVM. I am able to print 32 uptil 64 bit integers using the format string "%d" in printf . Please see the code in red below , as I am having a bit difficulty in trying to print the 128 bit value computed at runtime. The code in red is never executed since the value may never be casted to a
2018 Aug 15
2
Queries Regarding Usage of PGOInstrumentation Passes instead of Deprecated ProfileInfo
On Wed, Aug 15, 2018 at 1:28 PM Xinliang David Li <xinliangli at gmail.com> wrote: > > > On Wed, Aug 15, 2018 at 12:46 PM Malhar Thakkar <cs13b1031 at iith.ac.in> > wrote: > >> Thank you so much for your response. >> >> On Wed, Aug 15, 2018 at 3:08 PM, Xinliang David Li <xinliangli at gmail.com> >> wrote: >> >>> >>>
2017 Jul 03
2
Unable to Receive Emails from Phabricator
Dear all, I just created this revision <https://reviews.llvm.org/D34937> but I did not receive any email for it even though it says 'Automatically Subscribed' on the right. Also, even my profile shows no trace of the aforementioned revision. It shows that my last activity was on 24th May. Additionally, just to verify that I am not receiving any emails from Phabricator, I logged
2018 Aug 15
3
Queries Regarding Usage of PGOInstrumentation Passes instead of Deprecated ProfileInfo
Thank you so much for your response. On Wed, Aug 15, 2018 at 3:08 PM, Xinliang David Li <xinliangli at gmail.com> wrote: > > > On Wed, Aug 15, 2018 at 7:36 AM Malhar Thakkar via llvm-dev < > llvm-dev at lists.llvm.org> wrote: > >> Hey all, >> >> I have a piece of code (written in LLVM 2.8) which uses profiling results >> produced by ProfileInfo.
2008 May 27
2
[LLVMdev] Min and max
Hi all, I'm trying to implement a floating-point 'min' and 'max' operation using select. For 'min' I get the expected x86 assembly minss instruction, but for 'max' I get a branch instead of maxss. The corresponding C syntax code looks like this: float z = (x > y) ? x : y; Any clues? Could someone maybe explain to me the basics of
2008 Oct 08
3
[LLVMdev] Lost instcombine opportunity: "or"s of "icmp"s (commutability)
instcombine can handle certain orders of "icmp"s that are "or"ed together: x != 5 OR x > 10 OR x == 8 becomes.. x != 5 OR x == 8 becomes.. x != 5 However, a different ordering prevents the simplification: x == 8 OR x > 10 OR x != 5 becomes.. %or.eq8.gt10 OR x != 5 and that can't be simplified because we now have an "or" OR "icmp". What would I
2013 Sep 05
2
[LLVMdev] Optimisation pass to move an alloca'd array to a global constant array
Hi All, I was wondering if there is an optimisation pass that moves a stack allocated array, initialised with constant values, to a global constant array. And if there is such a pass, what requirements are there for it to operate? My optimised IR is below. As you can see an array of 5 integers is created with alloca, then each element is stored to in turn. It would be nice if this array was
2018 Aug 15
2
Queries Regarding Usage of PGOInstrumentation Passes instead of Deprecated ProfileInfo
Hey all, I have a piece of code (written in LLVM 2.8) which uses profiling results produced by ProfileInfo. It essentially computes the number of iterations performed by a loop from the profiling information available. The code snippet in my pass looks something like this. BasicBlock *header = loop->getHeader(); ProfileInfo &pi = getAnalysis< ProfileInfo >(); for(pred_iterator
2008 Oct 08
0
[LLVMdev] [PATCH] Lost instcombine opportunity: "or"s of "icmp"s (commutability)
Here's an initial stab, but I'm not too happy about the temporarily adding new instructions then removing it because returning it will have it added back in to replace other uses. I also added a couple test cases pass with the new InstructionCombining changes (the old code only passes one of the added tests). Also, this change exposes some simplification for
2011 May 31
2
[LLVMdev] How to identify LLVM version?
Hi, all I'd like to write a code that can build different codes based on LLVM version. Like code snippets in the below. #ifdef __LLVM_29__ PHINode *PN = Builder.CreatePHI (Type::getDoubleTy(getGlobalContext()), 2, "iftmp"); #elif __LLVM_28__ PHINode *PN = Builder.CreatePHI (Type::getDoubleTy(getGlobalContext()), "iftmp"); #else assert ("wrong
2011 Jul 06
1
[LLVMdev] Confusion with a Use of a getelementptr instruction being a Use of a select instruction instead
Hello, I'm doing some Def/Use analysis, and I'm hung up on one tricky spot. The BB in question is attached. Ignore the red. The issue is that '%13 = load...' instruction does not show up as a Use for the '%scevgep25' definition, and I feel like it should. Instead, it shows up as a Use for '%iftmp.55.0 = select...', though Operand(0) for this '%13 =
2009 Mar 17
2
[LLVMdev] PHIs with Same Basic Block Listed Twice
Dear All, I have, in an LLVM bitcode program, the following phi node: %iftmp.225.0 = phi i8* [ getelementptr ([10 x i8]* @.str12597431, i32 0, i32 0), %bb114 ], [ getelementptr ([10 x i8]* @.str1258, i32 0, i32 0), %bb111 ], [ getelementptr ([10 x i8]* @.str1258, i32 0, i32 0), %bb111 ] This phi instruction has two arguments for the same incoming basic block. The only reason why it passes
2017 Dec 27
1
Convert MachineInstr to MCInst in AsmPrinter.cpp
Hello everyone, In the file *lib/CodeGen/AsmPrinter/AsmPrinter.cpp*, I would like to obtain an MCInst corresponding to its MachineInstr. Can anyone tell me a way to do that? If that is not possible, then, I would like to know if a given MachineInstr is an *lea *instruction and I would like to know if the symbol involved with this lea instruction is a jump-table. For instance, given a