I am working on cleaning up some PPC code generation. Two questions: 1. Which pass is responsible for cleaning up self-moves: 0x00000000100057c0 <+208>: mr r3,r3 2. Which pass is responsible for cleaning up unconditional jumps that should be fall-throughs: 0x0000000010005d88 <+1688>: b 0x10005d8c <._Z11sfoo+1692> 0x0000000010005d8c <+1692>: ld r3,-32056(r2) Maybe there are no such passes, but these things appear in optimized code, and I'm trying to figure out why. Thanks in advance, Hal -- Hal Finkel Postdoctoral Appointee Leadership Computing Facility Argonne National Laboratory
On Wed, Jun 6, 2012 at 10:37 PM, Hal Finkel <hfinkel at anl.gov> wrote:> I am working on cleaning up some PPC code generation. Two questions: > > 1. Which pass is responsible for cleaning up self-moves: > 0x00000000100057c0 <+208>: mr r3,r3 > > 2. Which pass is responsible for cleaning up unconditional jumps that > should be fall-throughs: > 0x0000000010005d88 <+1688>: b 0x10005d8c <._Z11sfoo+1692> > 0x0000000010005d8c <+1692>: ld r3,-32056(r2) >This should be handled by the MachineBlockPlacement (among others). Do you have a reduced est case? -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120607/1e4f2d11/attachment.html>
Hi Hal, On 07/06/2012 09:57, Chandler Carruth wrote:> On Wed, Jun 6, 2012 at 10:37 PM, Hal Finkel <hfinkel at anl.gov > <mailto:hfinkel at anl.gov>> wrote: > > I am working on cleaning up some PPC code generation. Two questions: > > 1. Which pass is responsible for cleaning up self-moves: > 0x00000000100057c0 <+208>: mr r3,r3 >and the RA should eliminate trivial copies.> > 2. Which pass is responsible for cleaning up unconditional jumps that > should be fall-throughs: > 0x0000000010005d88 <+1688>: b 0x10005d8c <._Z11sfoo+1692> > 0x0000000010005d8c <+1692>: ld r3,-32056(r2) > > > This should be handled by the MachineBlockPlacement (among others). Do > you have a reduced est case? > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120607/301f5f05/attachment.html>
On Thu, 7 Jun 2012 00:57:20 -0700 Chandler Carruth <chandlerc at google.com> wrote:> On Wed, Jun 6, 2012 at 10:37 PM, Hal Finkel <hfinkel at anl.gov> wrote: > > > I am working on cleaning up some PPC code generation. Two questions: > > > > 1. Which pass is responsible for cleaning up self-moves: > > 0x00000000100057c0 <+208>: mr r3,r3 > > > > 2. Which pass is responsible for cleaning up unconditional jumps > > that should be fall-throughs: > > 0x0000000010005d88 <+1688>: b 0x10005d8c <._Z11sfoo+1692> > > 0x0000000010005d8c <+1692>: ld r3,-32056(r2) > > > > This should be handled by the MachineBlockPlacement (among others). > Do you have a reduced est case?Chandler, Thanks for the pointer! It turns out that this was a problem only in the context of a local modification (and I could fix it by fixing AnalyzeBranch and friends). That triggered other problems, but that's another story... -Hal -- Hal Finkel Postdoctoral Appointee Leadership Computing Facility Argonne National Laboratory
Possibly Parallel Threads
- [LLVMdev] Instruction Cleanup Questions
- [LLVMdev] Instruction Cleanup Questions
- [LLVMdev] Instruction Cleanup Questions
- data frame is killing me! help
- [LLVMdev] [llvm-commits] PROPOSAL: LLVM_FALLTHROUGH macro for intended fall-throughs between switch cases