similar to: How to invoke simplifycfg from code

Displaying 20 results from an estimated 4000 matches similar to: "How to invoke simplifycfg from code"

2015 Sep 20
2
How to invoke simplifycfg from code
Okay, as far as I can see looking through the output of that, the empty block isn't created near the end, it exists at the start and never goes away. On Sun, Sep 20, 2015 at 1:36 PM, Hal Finkel <hfinkel at anl.gov> wrote: > Hi Russell, > > Can you run your IR though opt with -O3 and -print-after-all and see when > the block becomes empty?
2015 Sep 20
2
How to invoke simplifycfg from code
Yes, that is what I was thinking. Should I report it as a bug? On Sun, Sep 20, 2015 at 2:31 PM, Hal Finkel <hfinkel at anl.gov> wrote: > ----- Original Message ----- > > From: "Russell Wallace" <russell.wallace at gmail.com> > > To: "Hal Finkel" <hfinkel at anl.gov> > > Cc: "llvm-dev" <llvm-dev at lists.llvm.org> >
2011 May 25
2
[LLVMdev] Precompiled templates
Hello list, I'm currently investigating the use of LLVM for a project. For example, if I have a function like int a(int x, int y) { if (P == 0) { return x - y; } else { return y - x; } } and P could be considered constant, one of the code paths could be optimized out. Now I want to load a compiled bitcode file into a CFG, replace all occurrences of P with the value (either 0
2011 May 27
0
[LLVMdev] Precompiled templates
Hi Andreas, > I'm currently investigating the use of LLVM for a project. For example, > if I have a function like > > int a(int x, int y) { > if (P == 0) { > return x - y; > } else { > return y - x; > } > } > > and P could be considered constant, one of the code paths could be > optimized out. Now I want to load a compiled bitcode
2008 May 18
0
[LLVMdev] VS build is broken again
Hi Dmitri, For what version of VS did you update the project files? Ted On May 17, 2008, at 3:00 PM, Dmitri Makarov wrote: > attached is the diff of vcprojs that need to be changed to fix the VS > build as of revision: 51224. > > I don't know if this catches all the missing bits, but this does build > all the way through. > > > Index: win32/Analysis/Analysis.vcproj
2008 Dec 19
2
[LLVMdev] strange behaviour after extracting optimization pass code
Hi, I am expieriencing strange behaviour of llvm's optimization passes and I don't understand what I am doing wrong. Basically all I've done is extracting code for optimization of a llvm-function in a llvm-module and put it into a separate function for better readability. The original code looks like follows (and works as expected): ----------------------------- std::string
2013 Dec 13
2
[LLVMdev] unconditional branch folding
Hello guys, Do we have a pass to do unconditional branch folding except the one in Codegen? I checked in the lib/Transforms/Scalar, did not see any promising one. thank you, yuanfang
2013 Jan 29
0
[LLVMdev] Running a Local Buildbot
Hello We are migrating from 2.9 to 3.2 Here is some code that does not compile any more llvm::PassManager *pm; llvm::FunctionPassManager *fpm; module = llvm::ParseBitcodeFile(mb,context,&err_str); if (!module) { error() <<"Failed to load module from bitcode file: " <<err_str <<endl; exit(1); } pm = new PassManager();
2008 May 17
3
[LLVMdev] VS build is broken again
attached is the diff of vcprojs that need to be changed to fix the VS build as of revision: 51224. I don't know if this catches all the missing bits, but this does build all the way through. -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: msvs.patch URL:
2008 Dec 19
0
[LLVMdev] strange behaviour after extracting optimization pass code
On 2008-12-19, at 06:59, Ralf Karrenberg wrote: > I am expieriencing strange behaviour of llvm's optimization passes > and I don't understand what I am doing wrong. > Basically all I've done is extracting code for optimization of a > llvm-function in a llvm-module and put it into a separate function > for better readability. The original code looks like follows
2015 Feb 10
2
[LLVMdev] Should we add noduplicate attribute on the function which contains a noduplicate function call?
Hello all, I have a question related to noduplicate attribute. For example, if I have the following source code: __attribute__((noduplicate)) __attribute__((always_inline)) void wait () { // some code barrier(); // some code } __attribute__((noduplicate)) void barrier (); void f () { // some code wait(); // some code } Sometimes I observed a phenomenon that
2008 May 21
4
[LLVMdev] 2.3 Pre-release available for testing
>I just sent a reply to Razvan with 3 patches that I think should be merged >into the release branch. I want to keep it somewhat in sync with mainline. >Can you try applying those 3 patches and let me know if it builds for you >and what version of MSVC you have? It doesn't build. first problem is patch 51098 that adds lib\VMCore\Use.cpp and lib\Transforms\Utils\UnrollLoop.cpp
2009 Jun 30
2
[LLVMdev] Irreducibility and the -simplifycfg flag
Hi everyone, I'm currently trying to run a study on irreducibility of C programs, and I've implemented structural analysis (original paper by Sharir, algorithm in Muchnick's book) as an LLVM pass. When my implementation becomes a bit less buggy I'll certainly look into including it in the LLVM project. As a test for the algorithm I've been producing LLVM bitcode for C files
2013 Jan 28
7
[LLVMdev] Running a Local Buildbot
We're thinking about running our own buildbot against the upstream llvm and clang sources. I'm talking to our build folks and seeing what they can allow. Maybe we can contribute some build slaves to the osuosl buildbot but I'm not sure. If we do end up having to run our own buildbot, what's the best way to integrate that into the upstream web page and status notifier? Basically,
2006 Nov 03
4
[LLVMdev] is createCFGSimplificationPass unused?
It looks like createCFGSimplificationPass was disabled on 2006/09/04. This causes some problems for architectures that use conditional moves to implement select (alpha and ARM). For example, on 2006/09/03 a "if (a) return 0; else return 1;" compiled to ---------------------------------------- zapnot $17,15,$1 zapnot $16,15,$2 bis $31,$31,$0 cmpeq $2,$1,$1
2017 Dec 21
2
Pass ordering - GVN vs. loop optimizations
Hi, This is Ariel from the Rust team again. I am having another pass ordering issue. Looking at the pass manager at https://github.com/llvm-mirror/llvm/blob/7034870f30320d6fbc74effff539d946018cd00a/lib/Transforms/IPO/PassManagerBuilder.cpp (the early SimplifyCfg now doesn't sink stores anymore! I can't wait until I can get to use that in rustc!) I find that the loop optimization group
2015 Sep 20
2
simplifycfg not happening?
The following function compiles with -O3 into the following IR. http://llvm.org/docs/Passes.html#simplifycfg-simplify-the-cfg says - Eliminates a basic block that only contains an unconditional branch. but the first and third blocks in the compiled function only contain an unconditional branch; I would have expected them to be eliminated. What am I missing? double f(double *a) { for (int i
2015 Sep 20
2
simplifycfg not happening?
You're right, it can indeed. Is there a reason -O3 doesn't do this? I had been expecting -O3 to perform full optimization. The first block still remains in any case. Is the first block needed for some purpose I'm not taking into account? On Sun, Sep 20, 2015 at 5:27 AM, Xiangyang Guo <eceguo at gmail.com> wrote: > Hi, > > if you use opt -simplifycfg, the third BB can
2010 May 09
0
[LLVMdev] Remove identical or redundant basic blocks?
Eugene Toder wrote: > Would it make sense to have a similar pass that operates on llvm main IR? > The unify exit return node (-mergereturn?) pass should take care of the first example. The -simplifycfg option might take care of the second example. Both work on LLVM IR. -- John T. > On Sat, May 8, 2010 at 5:15 PM, Dale Johannesen <dalej at apple.com> wrote: > >>
2012 Dec 17
2
[LLVMdev] Can simplifycfg kill llvm.lifetime intrinsics?
Hi! I'm working on ASan option that uses llvm.lifetime intrinsics to detect use-after-scope bugs. In short, the idea is to insert calls into ASan runtime that would mark the memory as "addressable" or "unaddressable". I see the following problem with the following "trivial" basic block: for.body.lr.ph.i: ; preds = %for.body.i310