condition flags USE in AD instruct
Christian.Thalinger at Sun.COM
Tue Apr 14 13:34:26 PDT 2009
On Tue, 2009-04-14 at 12:42 -0700, Tom Rodriguez wrote:
> Matching Bools and Cmps is kind of special. All Ifs start out looking
> like (If (Bool (Cmp)) but before matching they are converted to (If
> (Bool (Cmp)) (Cmp)) so that they Bool and Cmp can be matched
> together. The reason for this is that C2 separates the comparison
> operation from the interpretation of those results.
I see, thanks.
> I don't know the
> full history of this but I assume it's to encourage GVN on the
> compares which collects together code that compares the same values
> but asks different questions about them. So if you want to use the
> result of a compare in an AddcI I think you need to use that same
> logic. In particular you need to modify Matcher::find_shared to do
> some variation of the Alt_Post_Visit logic on your AddcI to add an
> input for the Cmp and shove it into a BinaryNode so you can match
> using (Set dst (AddcI (Binary cop cr) (Binary dst src))).
I already did something like that, but I only add one BinaryNode. I
will add the second one and see if it works.
More information about the hotspot-compiler-dev