similar to: [LLVMdev] [PATCH] BasicBlock::getFirstNonPHI

Displaying 20 results from an estimated 9000 matches similar to: "[LLVMdev] [PATCH] BasicBlock::getFirstNonPHI"

2006 Jun 04
0
[LLVMdev] [PATCH] BasicBlock::getFirstNonPHI
On Sun, 4 Jun 2006, Vladimir Prus wrote: > everytime one has to add instruction at the beginning of a basic block, one > has to skip past PHI nodes that are already there. How about adding a new > method to BasicBlock, to get that first non-PHI instruction? So, adding an > instruction will be as simple as: > > new SomeInstruction(............., BB->getFirstNonPHI())
2006 Jun 05
2
[LLVMdev] Re: [PATCH] BasicBlock::getFirstNonPHI
Chris Lattner wrote: > On Sun, 4 Jun 2006, Vladimir Prus wrote: >> everytime one has to add instruction at the beginning of a basic block, >> one has to skip past PHI nodes that are already there. How about adding a >> new method to BasicBlock, to get that first non-PHI instruction? So, >> adding an instruction will be as simple as: >> >> new
2006 Jun 06
0
[LLVMdev] Re: [PATCH] BasicBlock::getFirstNonPHI
On Mon, 5 Jun 2006, Vladimir Prus wrote: >> Sure, sounds good. A couple requests: >> >> 1. Please add a const version that returns a const Instruction* also. > > I was considering it, but then decided that given that you can't pass 'const > Instruction*' as 'insert before' parameter of any other instruction, > there's no point in adding it.
2006 Jun 04
1
[LLVMdev] [PATCH] BasicBlock::getFirstNonPHI
Chris Lattner wrote: > On Sun, 4 Jun 2006, Vladimir Prus wrote: > >> everytime one has to add instruction at the beginning of a basic >> block, one >> has to skip past PHI nodes that are already there. How about adding a new >> method to BasicBlock, to get that first non-PHI instruction? So, >> adding an >> instruction will be as simple as: >>
2004 Jun 24
4
[LLVMdev] -Woverloaded-virtual
I've just had some fun, because I wanted to override FunctionPass::addAnalysisUsage, but forgot "const" after the method name -- so instead of overriding I've just created a new unrelated method. After spending some time on this, I've decided to add -Woverloaded-virtual option to compiler to catch such cases. However, it also gives some warnings on LLVM code:
2011 Feb 01
0
[LLVMdev] Loop simplification
Here's what I've got so far - it seems to work, aside from the fact that DeleteDeadPHIs is not removing at least one dead PHI in my test program. --------------------- static bool mergeBlockIntoSuccessor(BasicBlock *pred, BasicBlock *succ) { if (succ == pred) return false; if (pred->getFirstNonPHI() != pred->getTerminator()) return false; //
2004 Jun 24
0
[LLVMdev] -Woverloaded-virtual
I've long been an advocate of using -Woverloaded-virtual. The thing with this option is that it can REALLY help catch some nasty inheritance bugs. I'm running into these as I'm designing the bytecode analyzer interface. I make a change to the interface, forget to change a subclass, and bingo, that method doesn't get called any more and the compiler doesn't warn me about it. I
2004 Jun 24
0
[LLVMdev] -Woverloaded-virtual
On Thu, 24 Jun 2004, Vladimir Prus wrote: > I've just had some fun, because I wanted to override > FunctionPass::addAnalysisUsage, but forgot "const" after the method name -- > so instead of overriding I've just created a new unrelated method. Ya know, I think that everyone has done that at least once (myself included)... on THAT VERY METHOD. grr :) I definitely
2011 Feb 01
3
[LLVMdev] Loop simplification
On Feb 1, 2011, at 1:34 PM, Andrew Trick wrote: > On Feb 1, 2011, at 1:08 PM, Andrew Clinton wrote: > >> I have a (non-entry) basic block that contains only PHI nodes and an >> unconditional branch (that does not branch to itself). Is it always >> possible to merge this block with it's successor and produce a >> semantically equivalent program? I'm
2006 Jun 04
3
[LLVMdev] "pure" functions"
Hi, say I've a LLVM module with a call instruction. The called function is "pure", that is it has no side-effects at all. How can I communicate this to LLVM, so that the function call can be removed if the return value is never used? Thanks, Volodya
2005 Feb 16
4
[LLVMdev] Install fails due to missing 'pax' tool
Hello, I've just tries make && make install on a fresh CVS tree, and get: llvm[0]: Installing include files /bin/sh: line 1: pax: command not found Two questions. 1. Why install process requires some nonstandard tool? Is it possible to get away without it. 2. autoconf/configure.ac has this: AC_PATH_PROG(PAX, [pax], [pax]) but Makefile.rules uses plain 'pax',
2006 Mar 06
4
[LLVMdev] Online docs missing?
Hi! When I go to http://llvm.cs.uiuc.edu/doxygen/annotated.html and click on link for, say, "llvm::Module", I've told that the target page does not exist. Same happens for llvm::Value, and in fact everything under "llvm" namespace. Any idea what's wrong? - Volodya
2005 Apr 25
5
[LLVMdev] "Best" alias analysis algorithm
Hello, I'm playing with alias analysis, using the following program: %i = external global int ; <int*> [#uses=2] implementation ; Functions: int %_Z3bari(int %p) { entry: %tmp.0 = load int* %i ; <int> [#uses=1] %tmp.1 = setgt int %tmp.0, 10 ; <bool> [#uses=1] br bool %tmp.1, label %then, label %UnifiedReturnBlock then:
2006 Jun 04
0
[LLVMdev] "pure" functions"
On Sun, 4 Jun 2006, Vladimir Prus wrote: > say I've a LLVM module with a call instruction. The called function is > "pure", that is it has no side-effects at all. How can I communicate this > to LLVM, so that the function call can be removed if the return value is > never used? There isn't a way to do this from the source code yet. However, if this is a standard
2004 Jul 08
2
[LLVMdev] UnitTests/2002-05-19-DivTest.c
The above-mentioned test contains this: long B53 = - (1LL << 53); strictly speaking, this is not correct code. The C standard says about shift: "if the value of the first operator is ... or greater than ... the width of the promoted left operand, the behaviour is underfined". Thouhts? - Volodya
2004 Jul 08
3
[LLVMdev] UnitTests/2002-05-19-DivTest.c
Vladimir Prus wrote: > Vladimir Prus wrote: > > The above-mentioned test contains this: > > > > long B53 = - (1LL << 53); > > > > strictly speaking, this is not correct code. The C standard says about > > shift: "if the value of the first operator is ... or greater than ... the > > width of the promoted left operand, the behaviour is
2004 Jul 01
3
[LLVMdev] Operand constraints
On my target, the multiplication can involve all general purpose registers, but there's are still some restrictions: the first and the second operand as well as the result must be in different registers, and neither register can be gr7. How can I enforce this restriction on the register allocator? - Volodya
2006 Mar 14
2
[LLVMdev] Port to Solaris' Sun Studio 8
Well, line 364 wasn't actually what was holding me up, so it's a bad example, but the problem's still relevant. Using cast<...>(iter), dyn_cast<...>(iter), or isa<...>(iter) results in the error messages mentioned below. ________________________________ When compiling LoadValueNumbering.cpp, I get the following errors:
2005 Apr 25
0
[LLVMdev] "Best" alias analysis algorithm
On Monday 25 April 2005 14:43, Vladimir Prus wrote: > The 'i' variable is never modified in the program, however, all analyses > except for -globalsmodref-aa report that the > > %tmp.3 = call int %_Z3bari( int %p ) ; <int> [#uses=1] > > instruction can modify 'i'. I'm somewhat surprised, because it looks like > -globalsmodref-aa is the simplest
2006 May 13
2
[LLVMdev] Re: New llvmgcc4 snapshot
On Sat, 13 May 2006, Vladimir Prus wrote: >> If you're interested, please try it out. > I get this with LLVM CVS: > Adding: > #include "llvm/Target/TargetData.h" > Fixed this. Right, thanks. > Chris, any change you'll make gcc4 frontend source available from some CVS? > Then, I can put together a script to build it every night, to make sure > things