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