[LLVMdev] reg_iterator Caveats
David Greene
dag at cray.com
Sun Mar 30 11:17:53 PDT 2008
I'm forwarding this to llvmdev so it doesn't get lost in the sea of commits...
-Dave
---------- Forwarded Message ----------
Subject: Re: [llvm-commits] [llvm] r48521 - in /llvm/trunk:
include/llvm/CodeGen/LiveVariables.h lib/CodeGen/LiveVariables.cpp
test/CodeGen/PowerPC/2008-03-18-RegScavengerAssert.ll
test/CodeGen/X86/x86-64-ret0.ll
Date: Friday 28 March 2008 16:34
From: David Greene <dag at cray.com>
To: llvm-commits at cs.uiuc.edu
Cc: Chris Lattner <clattner at apple.com>
On Tuesday 18 March 2008 23:59, Chris Lattner wrote:
> How about using reg_iterators to do this? I assume this only applies
> to vregs. If you walk the use_iterator list for the register, you can
> very efficiently discard uses in other blocks (check User->getparent()
> == MBB). Any uses within the same block are either a) in phi nodes,
> in which case they are above the instruction or b) users later in the
> block.
>
> If the representation is not in SSA form, you have to do some more
> checks, but this should be a lot faster than scanning the whole
> machine block. MBB's can be very large after all :)
Ack. I just started looking at using reg_iterators elsewhere but wasn't
aware of this non-SSA caveat. Can you elaborate?
-Dave
-------------------------------------------------------
More information about the llvm-dev
mailing list