Displaying 20 results from an estimated 4000 matches similar to: "[LLVMdev] What is "strong phi elimination""
2008 Mar 25
0
[LLVMdev] What is "strong phi elimination"
Ask an ye shall receive. From the .cpp file:
//
=
=
=----------------------------------------------------------------------
===//
//
// This pass eliminates machine instruction PHI nodes by inserting copy
// instructions, using an intelligent copy-folding technique based on
// dominator information. This is technique is derived from:
//
// Budimlic, et al. Fast copy coalescing and
2008 Mar 25
2
[LLVMdev] What is "strong phi elimination"
Can you describe quickly (or point to references for the inclined)
what this pass will do and what other stuff it might enable for LLVM?
I'm just curious.
--
Christopher Lamb
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20080324/46829334/attachment.html>
2008 Feb 02
0
[LLVMdev] Question to Chris
Ok, here are a few suggestions and comments:
1) LLVM has the capabilities to do everything that you are trying to
re-implement.
2) Have you looked at the C backend? It recreates loops. It may not
create "for" loops but you can hack on it to do that.
3) The way you are converting out of SSA is wrong. You will suffer
from lost copies. You should look at using demotePHI(). see
2008 Feb 02
4
[LLVMdev] Question to Chris
Dear Prof.Adve and Bill,
I deeply appreciate your comments and concerns.
(Please forgive my late response. I've tried some more cases to make this issue)
As Prof.Adve mentioned, I need to explain exactly what my problem is, but I have no good ability that I can explain it in this plain text space.
For this reason, I made a .pdf file and linked it as follows:
2008 Feb 04
1
[LLVMdev] Question to Chris
I appreciate your suggestions, some follow-up questions though....
>1) LLVM has the capabilities to do everything that you are trying to
>re-implement.
>2) Have you looked at the C backend? It recreates loops. It may not
>create "for" loops but you can hack on it to do that.
I wonder if you mean "goto elimination technique" by Ana Maria Erosa (
2007 Mar 28
3
[LLVMdev] x86 in win32 folder
Might I suggest the following tool for setting-up/maintaining the
Visual Studio project files. It makes setting them up with all the
right build options and include paths much, much easier. =)
http://sourceforge.net/projects/xpj
--
Christopher Lamb
christopher.lamb at gmail.com
On Mar 28, 2007, at 3:06 AM, Morten Ofstad wrote:
> Seung Jae Lee wrote:
>> Is there any special reason
2007 Mar 28
0
[LLVMdev] x86 in win32 folder
It's not clear it offers any real benefits. The project files already
exist. To use this, I would have to throw them away and create new XML
files by hand. I would have to maintain them by hand also, whereas the
project files are maintainable from within Visual Studio, i.e. via an
integrated GUI interface.
And to comment on supporting other targets: No reason it can't be done,
2007 Mar 28
2
[LLVMdev] x86 in win32 folder
I don't want to drive this too off topic, but I should be clear that
I wasn't suggesting that the LLVM project adopt XPJ as it's official
config file format for Visual Studio. I have found it useful to use
XPJ to generate the initial VS projects for a code base that doesn't
already have VS projects. I also find it nice to be able to see all
of the config options in a
2006 Nov 09
3
[LLVMdev] Is this bug in LLVM?
Hello. My name is Seung Jae Lee.
I'd like to ask you onething about converting to ARM assembly code.
I saved the simplest C code shown in your LLVM webpage as 'hello.c'
And I made 'hello.bc' by "$ llvm-gcc hello.c -o hello".
In order to make ARM assembly code, I typed "llc -march=arm hello.bc -o hello.arm"
But, I met this error.
llc: ARMISelDAGToDAG.cpp:73:
2008 Feb 22
1
[LLVMdev] Is there someone tried LLVM 2.1 on Visual Studio 2005?
Xi,
I just installed VS2005 pro w/ SP1 for Win Vista.
Thanks,
Seung
---- Original message ----
>Date: Fri, 22 Feb 2008 12:36:43 +0800
>From: "Xi Wang" <xi.wang at gmail.com>
>Subject: Re: [LLVMdev] Is there someone tried LLVM 2.1 on Visual Studio 2005?
>To: "LLVM Developers Mailing List" <llvmdev at cs.uiuc.edu>
>
>I'm sorry but did you
2008 Jan 05
1
[LLVMdev] How to deal with phi-nodes
Hi, LLVMers.
I am trying to restore the original HL code from LLVM IR (kinda reverse engineering).
However, I have no good idea about how to handle PHI nodes. It is quite tricky for me to deal with the PHI nodes in LLVM IR in order to restore the original-like code. I read some reverse engineering thesis but they are a little bit old so don't handle SSA form.
Could you shed some lights on
2010 Apr 27
3
[LLVMdev] Status of Strong PHI Elimination?
Hello,
I am implementing a code transformation that would heavily benefit from the
CodeGen/StrongPHIElimination pass, but on the two bytecode files I've tested
it on so far llc segfaults on both. I see there have been no substantive
changes to this code since the middle of last year. Could someone please
tell me what the status of this pass is? Thank you.
Marc
-------------- next part
2012 Jun 08
0
[LLVMdev] Strong vs. default phi elimination and single-reg classes
On Jun 8, 2012, at 9:02 AM, Hal Finkel <hfinkel at anl.gov> wrote:
> On Fri, 8 Jun 2012 08:49:32 -0700
> Jakob Stoklund Olesen <stoklund at 2pi.dk> wrote:
>> When machine code is still in SSA form, there are restrictions on
>> what can be done with physical registers, which by their nature can't
>> be in SSA form. Lang and I have been trying to come up
2012 Jun 08
1
[LLVMdev] Strong vs. default phi elimination and single-reg classes
On Fri, 08 Jun 2012 09:24:16 -0700
Jakob Stoklund Olesen <stoklund at 2pi.dk> wrote:
>
> On Jun 8, 2012, at 9:02 AM, Hal Finkel <hfinkel at anl.gov> wrote:
>
> > On Fri, 8 Jun 2012 08:49:32 -0700
> > Jakob Stoklund Olesen <stoklund at 2pi.dk> wrote:
>
> >> When machine code is still in SSA form, there are restrictions on
> >> what can
2007 Feb 08
2
[LLVMdev] Virtual register??
On the document about writing an LLVM backend, I became to wonder what the 'virtual register' is in the following statement.
"You also need to define register classes to contain these registers, such as the integer register class and floating-point register class, so that you can allocate virtual registers to instructions from these sets, and let the target-independent register
2012 Jun 20
1
[LLVMdev] Strong PHI elimination asserts in RegisterCoalescer.C:1388
I'm the person who wrote it, and it's not really maintained, as we decided we wanted to go in a different direction long-term by having fewer passes making independent coalescing decisions rather than more. At the time I stopped working on it, it worked fine on x86 but caused problems with armv7 NEON code.
If you file a PR with a test case, I am happy to take a quick look and try to fix
2012 Jun 20
2
[LLVMdev] Strong PHI elimination asserts in RegisterCoalescer.C:1388
I've started using the strong PHI elimination pass, and it seems to work
beautifully (producing much better placement of copy instructions) -
though I'm seeing that it triggers an assert in debug+assert builds.
The assertion is on line 1388 of RegisterCoalescer.C. Attached is the
-debug output from the machine optimization part of the optimizer, for
the simplest test case I could
2012 Jun 20
0
[LLVMdev] Strong PHI elimination asserts in RegisterCoalescer.C:1388
I will try to make a standalone test case but the one that is failing
uses a custom back end, so it's not really portable.
So is the plan to have the strong PHI elimination behavior rolled into
other passes?
Andrew
On 06/20/2012 06:54 PM, Cameron Zwarich wrote:
> I'm the person who wrote it, and it's not really maintained, as we decided we wanted to go in a different direction
2007 Mar 28
2
[LLVMdev] x86 in win32 folder
Is there any special reason only x86 code is implemented in win32 folder unlike lib\Target folder which contains codes for other architectures?
Thank you.
Seung Jae Lee
2012 Jun 08
0
[LLVMdev] Strong vs. default phi elimination and single-reg classes
On Jun 7, 2012, at 10:54 PM, Hal Finkel wrote:
> For example, sometimes LiveIntervals asserts with:
> register:
> %CTR8
> clang: /llvm-trunk/lib/CodeGen/LiveIntervalAnalysis.cpp:446:
> void llvm::LiveInterval
> s::handlePhysicalRegisterDef(llvm::MachineBasicBlock*,
> llvm::MachineBasicBlock::iterator, llvm::SlotIndex,
> llvm::MachineOperand&,