similar to: [LLVMdev] Status of Strong PHI Elimination?

Displaying 20 results from an estimated 6000 matches similar to: "[LLVMdev] Status of Strong PHI Elimination?"

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
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
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
2009 Sep 10
1
[LLVMdev] Build problem with gcc-4.3.2
Hi, on http://llvm.org/docs/GettingStarted.html#requirements you say you want to know about problems compiling llvm with gcc. I just tried compiling llvm and clang, using ./configure; make, and I got the following error, llvm[2]: Compiling StrongPHIElimination.cpp for Debug build StrongPHIElimination.cpp:1051: internal compiler error: in value_format, at dwarf2out.c:7218 Please submit a
2009 Oct 20
3
[LLVMdev] self-hosting failure
I've been getting the error for a release build for the last 24 hours or so. This is on Ubuntu Jaunty on x86. Known problem? If not, does anyone have an easy recipe for getting the build system to tell me the command line that's being used and to leave a preprocessed file sitting around? Thanks, John llvm[2]: Compiling UnreachableBlockElim.cpp for Release build
2009 Oct 20
0
[LLVMdev] self-hosting failure
There have been a couple problems recently, but I don't recognize this. Please see if you can minimize it and get a test case. You can run with 'make VERBOSE=1' to get the failing compile command. I then usually try -emit-llvm to see if the .bc output reproduces the error (with llc). The full story is a lot more complicated, I can give more details about things to try if you can't
2013 Feb 09
0
[LLVMdev] Deleting LiveVariables
On Feb 8, 2013, at 4:20 PM, Jakob Stoklund Olesen <stoklund at 2pi.dk> wrote: > On Feb 8, 2013, at 4:03 PM, Cameron Zwarich <zwarich at apple.com> wrote: > >> How much of the work is done here? I'd be happy to do the phi elimination part, since I basically did that for StrongPhiElimination (RIP). > > Any help would be appreciated. > > I did a bit of the
2008 Mar 25
1
[LLVMdev] What is "strong phi elimination"
Do you mean that "normal" SSA phi elimination algorithm is DemotePHI()? Thx, Seung ---- Original message ---- >Date: Mon, 24 Mar 2008 21:43:06 -0700 >From: Chris Lattner <sabre at nondot.org> >Subject: Re: [LLVMdev] What is "strong phi elimination" >To: LLVM Developers Mailing List <llvmdev at cs.uiuc.edu> >Cc: Christopher Lamb
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 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
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
2013 Feb 09
3
[LLVMdev] Deleting LiveVariables
On Feb 8, 2013, at 4:03 PM, Cameron Zwarich <zwarich at apple.com> wrote: > How much of the work is done here? I'd be happy to do the phi elimination part, since I basically did that for StrongPhiElimination (RIP). Any help would be appreciated. I did a bit of the easy stuff in 2-addr, it has a LIS = getAnalysisIfAvailable<LiveIntervals>() member that it sometimes updates. It
2012 Jun 08
1
[LLVMdev] StrongPHIElimination
Hi, I have a question regarding StrongPHIElimination. With (weak) PHIElimination, register classes seems to take care of themselves, but with the Strong version, I get illegal virtual register for instruction. In this testcase, I define the PHI operands into a bigger (super) RC, than what the using MI can handle. Weak PHI elim handled this by copying the PHI operands into the right RC. The
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&,
2012 Mar 08
0
[LLVMdev] Updating value from PHI
It sounds like Transforms/Utils/SSAUpdater may be what you are looking for. A good example of how to use it -- one that sounds very similar to what you're doing -- can be found in Transforms/Scalar/LoopRotation.cpp On Wed, Mar 7, 2012 at 2:03 PM, Ryan Taylor <ryta1203 at gmail.com> wrote: > I am splitting a one BB loop into two BB. > > Basically, the one loop BB has 3 incoming
2012 Jun 08
2
[LLVMdev] Strong vs. default phi elimination and single-reg classes
On Fri, 8 Jun 2012 08:49:32 -0700 Jakob Stoklund Olesen <stoklund at 2pi.dk> wrote: > > 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 > >
2012 Jun 08
0
[LLVMdev] Strong vs. default phi elimination and single-reg classes
On Jun 7, 2012, at 7:31 PM, Hal Finkel wrote: > 112B BB#1: derived from LLVM BB %for.body, ADDRESS TAKEN > Predecessors according to CFG: BB#0 BB#1 > %vreg12<def> = PHI %vreg13, <BB#1>, %vreg11, <BB#0>;CTRRC8:%vreg12,%vreg13,%vreg11 > %vreg13<def> = COPY %vreg12<kill>; CTRRC8:%vreg13,%vreg12 > %vreg13<def> = BDNZ8 %vreg13,
2010 Feb 26
2
[LLVMdev] BlockAddress is a "User"
I've been playing around with the new IndirectBr and BlockAddress types. I'm finding that in CodeGen, during "EliminateMostlyEmptyBlocks", BlockAddresses are not updated to point to the newly merged block if the original block was eliminated. This is causing me problems. Mind you, I'm experimenting with this using the Sparc backend, which could be the source of blame, but
2012 Jun 08
2
[LLVMdev] Strong vs. default phi elimination and single-reg classes
On Thu, 7 Jun 2012 22:14:00 -0700 Jakob Stoklund Olesen <stoklund at 2pi.dk> wrote: > > On Jun 7, 2012, at 7:31 PM, Hal Finkel wrote: > > > 112B BB#1: derived from LLVM BB %for.body, ADDRESS TAKEN > > Predecessors according to CFG: BB#0 BB#1 > > %vreg12<def> = PHI %vreg13, <BB#1>, %vreg11, > >